gpt4 book ai didi

java - 自定义 JDialog - 查明 K 是否被按下

转载 作者:行者123 更新时间:2023-12-01 12:02:26 25 4
gpt4 key购买 nike

我有一个自定义的 JDialog,是为了解决一些本地问题(RTL 等)到目前为止,它只有一个“确定”选项,我现在必须修改它才能有一个取消按钮。我就是这么做的。现在唯一的问题是我不知道如何从中获取输入,是按下“确定”还是“取消”?

请帮忙。

这是我的代码:

public MyDialog(String title,boolean withCancelButton) {

String message = "<html><b><font color=\"#8F0000\" size=\"7\" face=\"Ariel\">" + title + "</font></p></html>";

JOptionPane pane = new JOptionPane(message, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

JDialog dialog = pane.createDialog(null, title);

dialog.setVisible(true);
dialog.dispose();

if (pane.getOptionType() == 1)
okWasPressed = true;
else
okWasPressed = false;

}

问题是pane.getOptionType()总是返回“2”,所以它可能是选项计数之类的。

如何获得实际选择?

谢谢,戴夫。

最佳答案

最简单的选择是使用标准功能,如下所示:

int opt = JOptionPane.showOptionDialog(jf, "Do you really want to?", "Confirm",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
if(opt == JOptionPane.OK_OPTION) {
System.out.println("Ok then!");
} else {
System.out.println("Didn't think so.");
}

如果您确实想使用自己的对话框,如示例所示,您应该使用 getValue() 来检查按下的内容:

JOptionPane optionPane = new JOptionPane("Do you really want to?",
JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
JDialog dialog = optionPane.createDialog(jf, "Confirm");

dialog.setVisible(true);
dialog.dispose();

int opt = (int) optionPane.getValue();
if(opt == JOptionPane.OK_OPTION) {
System.out.println("Ok then!");
} else {
System.out.println("Didn't think so.");
}

关于java - 自定义 JDialog - 查明 K 是否被按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899833/

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