JavaSwing GUI最佳实践(从代码角度出发)

JavaSwing GUI最佳实践(从代码角度出发),第1张

Java / Swing GUI最佳实践(从代码角度出发)

由于关于“最佳做法”的构成似乎存在一些争议,因此,我将为您提供最适合我的发现,以及我的推理:

1.每个窗口都应扩展Jframe或JDialog(取决于窗口的类型)。这使得无需每次指定特定对象即可轻松控制窗口的属性。不过,这更多的是一般情况,因为我知道这两种方法都是这样做的。

2.该

main()
方法应在单独的类中。这增加了在其他地方使用您的窗口类的可能性,因为它们与特定的实现无关。从技术上讲,这没有什么区别,但是应用程序启动代码只是不属于窗口。

3.侦听器应位于匿名内部类中。您的顶级类不应实现任何侦听器。这样可以防止类似黑客的行为,除了它们所连接的对象之外,都可以从任何地方调用侦听器方法。

这是一个具有单个框架的简单应用程序,用于演示这些做法:

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);        addWindowListener(new WindowAdapter() { @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();    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5487886.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-13

发表评论

登录后才能评论

评论列表(0条)

    保存