gpt4 book ai didi

java - 获取对 JOptionPane 静态方法创建的对象的引用

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:03 25 4
gpt4 key购买 nike

我想知道是否有可能获得对由 JOptionPane 的静态方法之一(例如 showMessageDialog)创建的(JDialog?)对象的引用?我打算修改对话框在屏幕上出现的位置。更具体地说,我希望对话框默认出现在主应用程序窗口的左上角,而不是窗口的中心。因此,拥有对该对象的引用将使我能够使用 setLocation 来达到预期的效果......

如有任何建议,我们将不胜感激!谢谢!

最佳答案

静态showXXXDialog() 方法只是为了方便。如果您查看 JOptionPane 的源代码,您会发现实际上,一个 JOptionPane 对象是根据您指定的选项创建的,然后是 JOptionPane。 createDialog(...) 被调用。在不同位置显示消息对话框的一种方法是:

JOptionPane pane = new JOptionPane("Message", JOptionPane.WARNING_MESSAGE,
JOptionPane.DEFAULT_OPTION);
JDialog dialog = pane.createDialog("TITLE");
dialog.setLocation(0, 0);
dialog.setVisible(true);

// dialog box shown here

dialog.dispose();
Object selection = pane.getValue();

结合 JOptionPane 构造函数和 JOptionPane set 方法的参数,您可以执行静态方法可以执行的任何操作,此外您还可以访问JDialog 对象本身。

已编辑:(为 OP 添加输入对话框示例)

JOptionPane pane = new JOptionPane("Message", JOptionPane.QUESTION_MESSAGE,
JOptionPane.OK_CANCEL_OPTION, null, null, null);
pane.setWantsInput(true);
JDialog dialog = pane.createDialog(null, "Title");
dialog.setLocation(0, 0);
dialog.setVisible(true);

String str = (String) pane.getInputValue();

关于java - 获取对 JOptionPane 静态方法创建的对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com