我有一个非常具体的问题,我想知道是否有办法更改JDialog的所有者(可以使用构造函数设置)。我想没有“官方”的可能性(除了黑客攻击),但我想确保我没有错过任何东西。关于该主题的任何想法或提示都会有所帮助,已经谢谢... 最佳答案 如果您的问题是关于如何在应用程序生命周期中重用对话框,那么更好的方法是:将所有对话框内容定义为JPanel子类并用现有的JPanel子类实例实例化一个新的JDialog对于第2点,您当然可以使用面板的惰性评估(仅在首次使用时实例化,然后重新使用)。您还需要让您的面板实现一些(您自己的)接口(interfa
我有一个非常简单的JFrame窗口,其中包含一个按钮:No。在主函数中我设置了setVisible(true);我的JFrame并且在No按钮监听器中我想关闭窗口所以我将可见性设置为false:setVisible(false);然后我执行System.exit(0);以防止在多次运行程序时可能出现的内存泄漏次。我有两个问题:在上述情况下我真的需要System.exit(0);吗?如果我将此JFrame作为popup窗口,我就不能真正使用System.exit(0);因为这将终止整个程序。那么我怎样才能正确关闭弹出窗口并留在主JFrame窗口中呢?(现在我只通过setVisible(f
我正在从事一个项目,我想在其中以编程方式关闭通用JOptionPane(通过不实际单击任何按钮)。当计时器到期时,我想关闭任何可能打开的JOptionPane并将用户踢回到我的程序的登录屏幕。我可以很好地踢回用户,但JOptionPane仍然存在,除非我实际单击它上面的按钮。我看过很多网站都没有这样的运气。似乎不可能在JOptionPane的“红色X”上调用doClick()方法,并且使用JOptionpane.getRootFrame().dispose()不起作用。 最佳答案 从技术上讲,您可以遍历应用程序的所有窗口,检查它们是
如何在我打开自定义JDialog时暂停我的应用程序,并在对话框关闭后再次继续。 最佳答案 只需使用:setModal(true);我通常在JDialog的构造函数中调用它。请参阅关于setModal(boolean)的Javadocs。http://java.sun.com/javase/6/docs/api/java/awt/Dialog.html#setModal(boolean)这将导致执行在当前线程上阻塞,直到对话框关闭。或者,您可以使用:setModalityType(Dialog.DEFAULT_MODALITY_TYP
我在我的应用程序中有一个JDialog作为主窗口(最初它是一个JFrame但它显示在我不想要的任务栏中)。目前我在做:setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);当我点击退出按钮时:frame.dispose();但这个过程似乎仍然在后台徘徊JFrame有JFrame.EXIT_ON_CLOSE似乎可以满足我的要求。如何正确关闭我的应用程序? 最佳答案 您需要添加一个WindowListener,它将在对话框关闭时执行System.exit(0)。JDialogdialog=
我已经看到这在其他类型的对话框窗口中是可能的,例如“showConfirmDialog”,其中可以指定按钮的数量及其名称;但是使用“showInputDialog”时是否可以实现相同的功能?我似乎无法在API中找到此类内容。也许我只是错过了它,但我们将不胜感激。 最佳答案 只需将自定义JPanel作为消息添加到JOptionPane.showOptionDialog():String[]options={"OK"};JPanelpanel=newJPanel();JLabellbl=newJLabel("EnterYourname:
我尝试了setPrefferedSize和setSize方法,但对话框仍然以最小尺寸打开。privatevoidmethod(){commandDialog.setPreferredSize(newDimension(100,100));------//ComponentsaddedtodialogPanelcommandDialog.add(dialogPanel);//Triedthisaswell:commandDialog.setSize(40,40);commandDialog.validate();commandDialog.setVisible(true);}
我有两个Jframes,其中frame1有一些文本字段,当单击frame1上的按钮时,我打开另一个JFrame,其中包含一个搜索框和一个包含搜索结果的JTable。当我单击JTable上的结果行时,我希望该特定值反射(reflect)在frame1文本字段中。我尝试将JFrame1的对象作为参数传递,但我不清楚如何实现这一点。任何帮助将不胜感激。谢谢 最佳答案 首先,您的程序设计似乎有点不对劲,就好像您正在为其中一个窗口使用JFrame而实际上您应该使用JDialog,因为听起来好像一个窗口应该依赖于另一个窗口。但无论如何,您传递G
我最初问的没有明确说明我的问题/问题,所以我会更好地解释它。我有一个将JDialog设置为可见的JButton。JDialog有一个WindowListener将其设置为在windowDeactivated()事件中不可见,该事件在用户单击对话框外部时触发。按钮ActionListener检查对话框是否可见,如果为真则隐藏它,如果为假则显示它。windowDeactivated()无论是否点击按钮都会触发,只要用户在对话框外点击。我遇到的问题是当用户单击按钮关闭对话框时。对话框由WindowListener关闭,然后ActionListener尝试显示它。如果windowDeactiv
我有一个组合框。在组合框中选择一个项目后,新的JDialog打开。当我使用JDK1.6_06时,我能够点击JDialog中的按钮适本地。当我使用JDK1.6_24时,然后我需要点击首先是JDialog。然后只需点击按钮有效。首先我认为这个焦点有问题。但组件与JDK配合良好1.6_06。但这只是JDK1.6_24的问题。我试着用谷歌搜索它。但没有找到任何答案。有人知道吗? 最佳答案 我不知道java版本-但将dialog.setVisible(true)放在SwingUtilities#invokeLater中为我解决了这个问题。YM