首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击“标签”创建一个新的JFrame

单击“标签”创建一个新的JFrame
EN

Code Review用户
提问于 2016-02-13 19:42:11
回答 1查看 462关注 0票数 1

所以我已经在互联网上找了一段时间了,这似乎是每个人建议的最常见的方式,但现在我想问的是,是否有更好的方法在点击时弹出一个新的jframe。

守则:

代码语言:javascript
复制
JLabel prevention = new JLabel("<html><U><font color='red'>Prevencija</font><U></html>");
    prevention.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 100));
    prevention.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            JFrame jf = new JFrame("Prevencija");
            jf.setContentPane(new PreventionPanel());
            jf.setSize(new Dimension(400, 400));
            jf.setVisible(true);
            jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    });
    bottom.add(prevention);
EN

回答 1

Code Review用户

回答已采纳

发布于 2016-02-13 20:40:20

一般来说,代码是很好的,这里有几个注意事项。

  • 也许可以将mouseClicked()方法的主体提取到一个单独的方法中,以防有更多的代码执行相同的操作,比如在侦听击键时。
  • 考虑使用JButton而不是JLabel,使用ActionListener甚至Action来代替MouseListener。使用MouseListenermouseClicked上对整个JLabel区域进行反应,就像在物理级别上复制Swing已经在逻辑级别上提供的东西一样。
  • 我会使用WindowConstants.EXIT_ON_CLOSE而不是JFrame.EXIT_ON_CLOSE,因为这是最初的定义。
  • 我将使用DISPOSE_ON_CLOSE而不是EXIT_ON_CLOSE来处理所有帧。使用EXIT_ON_CLOSE的应用程序测试变得更加困难。当DISPOSE_ON_CLOSE不能工作时,通常意味着您有一个糟糕的应用程序设计或线程方面的错误。
  • 根据您想要实现的目标,您可能更感兴趣的是在这个用例中使用JDialogJOptionPane而不是JFrame。也许是JOptionPane.showMessageDialog()。我只能建议查看这些信息,而不是判断它们是否更适合您的用例,因为您的代码和描述没有提供足够的信息来提供更多的信息。
票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/119892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档