我正在尝试访问一个属于我的GUIClass的变量,所以我创建了一个新类,我实例化我的静态GUI并给它一个setter,并从另一个GUI类中调用这个setter来获取所有变量我需要。
这是正确的方法还是有更好的方法?
public class Master {
static NormalDistributionUI ndUI;
public static NormalDistributionUI getNdUI() {
return ndUI;
}
public static void main(String[] args) {
ndUI = new NormalDistributionUI();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
ndUI.setVisible(true);
}
});
}
}
自从我将主要课程转移到本课程后,还有一件事我不知道现在要做什么:
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
或者更确切地说,应该在GUI构造函数中执行此操作?
答案 0 :(得分:2)
我会考虑使用M-V-C or Model-View-Controller design pattern或其中的一个变种
答案 1 :(得分:1)
制作GUI类singleton。您的代码最后应如下所示。 (当然使用@Hovercraft Full Of Eels建议)
public class NormalDistributionUI {
private static NormalDistributionUI _instance = null;
/*It's important that the constructor is private*/
private NormalDistributionUI(){
//constructor
}
// your class body
/* public static method to retrieve your instance */
public static NormalDistributionUI getInstance(){
if(_instance == null)
_instance = new NormalDistributionUI();
return _instance;
}
}
/* your Master class goes like this */
public class Master {
//your class
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
NormalDistributionUI.getInstance().setVisible(true);
}
});
}
}