栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号