单击按钮关闭 JFrame [重复]
Posted
技术标签:
【中文标题】单击按钮关闭 JFrame [重复]【英文标题】:Closing JFrame with button click [duplicate] 【发布时间】:2011-01-22 02:28:36 【问题描述】:我有 JFrame 的 jButton1 私有成员,我想在单击按钮时关闭框架。
jButton1.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
);
我想做super.close()
,但找不到超级的关闭。有没有办法引用JFrame
【问题讨论】:
【参考方案1】:您需要对要关闭的特定框架的引用,但假设您有引用 dispose()
应该关闭该框架。
jButton1.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
frameToClose.dispose();
);
【讨论】:
虽然这是真的,但是当你这样做时,你会跳过所有与关闭事件相关的 EventListeners... 如何处理这个(当前)JFrame??? 如果我只想关闭框架而不是终止事件怎么办?【参考方案2】:JButton b3 = new JButton("CLOSE");
b3.setBounds(50, 375, 250, 50);
b3.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
System.exit(0);
);
【讨论】:
非常适合单窗口应用程序,但是如果您使用它来关闭单个窗口,它也会关闭所有其他窗口... @acp 我只想关闭同一个类而不是 java swing 中的前一个类 System.exit(0);方法正在工作..还有 dispose();方法也不错。 我不认为使用 System::exit 是个好主意,因为调用 System.exit() 会关闭整个 JVM。【参考方案3】:在我看来,您有两个问题。一个是JFrame没有close
方法,其他答案中已经解决了。
另一个是您在引用 JFrame 时遇到问题。在actionPerformed
中,super
指的是 ActionListener。要在此处引用 JFrame 实例,请改用 MyExtendedJFrame.super
(您也应该能够使用 MyExtendedJFrame.this
,因为我认为您没有理由要覆盖 dispose
或 setVisible
的行为)。
【讨论】:
【参考方案4】:你可以使用 super.dispose() 方法,它更类似于关闭操作。
【讨论】:
感谢您提供帮助 :-) 不幸的是,您的回答并没有增加太多有用,甚至是错误的(听众的超级没有处置,无需调用框架的超级,有关完整详细信息,请参阅@lins314159)【参考方案5】:你猫使用JFrame的setVisible ()
方法(并将可见性设置为false
)或dispose ()
方法,它更类似于close
操作。
【讨论】:
setVisible() 方法对我不起作用。我还认为我可以通过设置可见性 = false 来关闭应用程序...我使用了 System.out(0);方法。它有效.. dispose() 方法也有效。以上是关于单击按钮关闭 JFrame [重复]的主要内容,如果未能解决你的问题,请参考以下文章
groovy关闭JFrame窗口的方式与用户单击xclose窗口按钮的方式相同
java中,swing设计中,为啥JOptionPane.showmessageDialog()弹出对话框后,单击确定按钮能关闭窗口?