[英]Java-Swing: Proper Style/Conventions/Syntax
我對應該如何用Java實現GUI感到困惑,因為有很多不同的方法。 有一個線程已經描述了這些適當的習慣: Java / Swing GUI最佳實踐(從代碼的角度來看)但是我很困惑,因為當使用此方法時,Netbeans在從超類調用的函數旁邊說“構造函數中的可重寫方法調用” 。
我不問如何使用GUI或如何實現它們,但我要求實現它們的正確方法。 由於出現此錯誤,我對此格式有些懷疑。 我可以用這種格式運行程序沒有問題。 至少在程序很小而簡單的時候。
我從上面提到的線程中獲得了以下示例代碼:
public class Main {
public static void main(String[] args) {
final String text = args[0];
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final MyWindow wnd = new MyWindow(text);
wnd.setVisible(true);
}
});
}
}
public class MyWindow extends JFrame {
public MyWindow(String text) {
super("My Window");
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); //Overridable method call in constructor
addWindowListener(new WindowAdapter() { //Overridable method call in constructor
@Override
public void windowClosing(WindowEvent e) {
MyWindow.this.setVisible(false);
MyWindow.this.dispose();
}
});
final JButton btn = new JButton(text);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(MyWindow.this, "Button Pressed", "Hey", JOptionPane.INFORMATION_MESSAGE);
}
});
setLayout(new FlowLayout());
add(btn);
pack();
}
}
並且此錯誤會在構造函數中繼承並使用的任何其他方法發生。 我知道此線程解釋了為什么不這樣做: 構造函數中可重寫的方法調用怎么了? 所以現在我問,這仍然是合適的風格嗎? 在實現GUI時這樣做合適嗎?
注意:不是一個非常有經驗的程序員,所以我希望我的措辭正確。 我想從一開始就學習適當的風格。
為了避免在JFrame構造函數中放置可重寫的方法,您必須在構造函數之外(即:在主函數中)進行所有JFrame初始化。 這通常是不好的做法,因為它可能導致框架的不同實例之間存在差異。 是的,您做對了所有事情。 Netbeans有時會顯示一些愚蠢的警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.