覆盖JFrame最小化功能

3
我正在制作一个带有记录器的程序。 记录器有自己的JFrame。 我试图覆盖单击该框架的最小化按钮时的反应。 我希望该框架要么setVisible(false),要么执行默认操作(因为我之前设置了隐藏)。
我该如何做? 提前感谢您的帮助。

3
应用程序应该只有一个主JFrame窗口,其他辅助窗口应该使用对话框(Dialogs)。虽然已经接受的答案可能可行,但它并不是JFrame的正确使用方式,这也是JDialog存在的原因。 - camickr
4个回答

8

使用 JDialog 而不是 JFrame。JDialog 没有最小化按钮。


2
您可以添加一个 WindowListener 并添加一个 最小化处理程序,当窗口最小化时它将会作出反应。
也许:
frame.addWindowListener(new WindowAdapter(){

      public void windowIconified(WindowEvent e){
            frame.setVisible(false);
      }
});

治疗疾病,不要医治症状;-) 强调一下Rob的评论... - kleopatra

1

您可以像这样使用WindowStateListener

    f.addWindowStateListener(new WindowStateListener() {

        @Override
        public void windowStateChanged(WindowEvent arg0) {
            if (arg0.getNewState() == Frame.ICONIFIED) {
                // do stuff
            }

        }
    });

0

试试这个:

frame.addWindowListener(new WindowAdapter() {
 @Override
         public void windowIconified(WindowEvent event) 
         {
            //do your stuff
         }
 });

2
你的回答与现有回答https://dev59.com/wFbUa4cB1Zd3GeqPCNJ7#5877604相似,甚至更加缺乏信息和解释。 - nhahtdh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接