我刚刚在CustomUIPanel类中编写了以下测试代码:
public static void main(String[] args) {
final JDialog dialog = CustomUIPanel.createDialog(null,
CustomUIPanel.selectFile());
dialog.addWindowListener(new WindowAdapter() {
@Override public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
它是否CustomUIPanel.main()
是程序的入口点,它可以正常工作,但是让我感到奇怪:如果另一个类需要CustomUIPanel.main()
进行测试,该怎么办?那我打给我System.exit(0)
是不正确的。
如果没有顶层窗口,是否有办法告诉Swing事件分配线程自动退出?
如果不是,如果目标是在所有顶级窗口都关闭时退出程序,那么JDialog / JFrame在关闭时应该做什么呢?
您可以使用的setDefaultCloseOperation()
方法JDialog
,指定DISPOSE_ON_CLOSE
:
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
另请参见12.8程序退出。
附录:包含@camickr的有用答案,当关闭窗口或按下关闭按钮时,此示例退出。
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
/** @see http://stackoverflow.com/questions/5540354 */
public class DialogClose extends JDialog {
public DialogClose() {
this.setLayout(new GridLayout(0, 1));
this.add(new JLabel("Dialog close test.", JLabel.CENTER));
this.add(new JButton(new AbstractAction("Close") {
@Override
public void actionPerformed(ActionEvent e) {
DialogClose.this.setVisible(false);
DialogClose.this.dispatchEvent(new WindowEvent(
DialogClose.this, WindowEvent.WINDOW_CLOSING));
}
}));
}
private void display() {
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new DialogClose().display();
}
});
}
}
问题内容: 在这里说这是必需的 但是我看到即使我没有指定action属性,表单也会被提交,并且表单也将被提交到当前页面,这正是我想要的。 问题答案: 该要求仅按 标准 。完全有可能在页面上执行任何操作而不遵循标准。如果执行此操作,则可能无法正常显示或工作,但很可能会正确显示或工作。目标是关注它们,其思想是,如果您遵循它们,您的页面将 始终 有效;您不必担心任何事情。 是的,该表单 必须 具有HTM
问题内容: 在Android应用程序中(或者在没有区别的情况下,在Java中更常见),什么时候变量值发生变化的最佳方法是什么? 问题答案: 您真正想要做的是设置事件驱动模型,以在事件发生时触发侦听器(在您的情况下,说变量值已更改)。这不仅对于Java,而且对于其他编程语言也非常普遍,尤其是在UI编程的情况下(尽管不一定如此) 通常,这可以通过执行以下步骤来完成: 确定在事件触发时侦听器应实现的接口
问题内容: 和之间的MySQL FK有什么区别?从文档来看,它们看起来完全一样。是这样吗 如果是这样,为什么两者都有? 问题答案: 从MySQL文档开始:https : //dev.mysql.com/doc/refman/8.0/en/create-table-foreign- keys.html 某些数据库系统具有延迟检查,并且是延迟检查。在MySQL中,外键约束会立即检查,因此与相同。
问题内容: 我将一些数据存储在mongodb中,并使用js / nodejs和mongoose访问它。我可以使用.find()在数据库中找到合适的东西,这不是问题。问题是如果没有东西,我想做点其他事情。目前,这是我正在尝试的: 当我执行act.params不在尼克索引中的操作时,这些命令都不会触发。发生这种情况时,我什么都不需要控制台,但是当它确实存在时,我确实让user.nick可以很好地进行记
本文向大家介绍失效副本是指什么?有那些应对措施?相关面试题,主要包含被问及失效副本是指什么?有那些应对措施?时的应答技巧和注意事项,需要的朋友参考一下 不能及时与leader同步,暂时踢出ISR,等其追上leader之后再重新加入
我有一个java应用程序,它在JTabbedPane上加载并显示一个applet。所以基本上GUI是: 小程序-- 我已经在JFrame类中放入了这一标准行: 下面是我在 JFrame 类中的方法,它应该在窗口关闭时调用: 然后,在我的Tabbed Pane类中,我有一个管理Applets的arrayList: 我循环遍历JPanels的ArrayList,如下所示: JPanel类中的stopG