gpt4 book ai didi

java - JOptionPane/输入对话框

转载 作者:行者123 更新时间:2023-11-30 07:16:56 26 4
gpt4 key购买 nike

我尝试通过以下方式从用户那里获取输入:

int myNumber = Integer.parseInt((String) JOptionPane.showInputDialog(
frame,
"Number you want:\n",
"Enter number",
JOptionPane.PLAIN_MESSAGE,
null,
null,
"5"));

它运行良好,但我不确定用户是否会在该字段中输入数字,我不希望抛出 NumberFormatException

有没有一种方法可以将 formatter 设置为 JOptionPane(就像我们可以为带有 JFormattedTextField 的文本字段设置 十进制格式) ?

最佳答案

简答:不,没有办法。 JOptionPane 在关闭之前不提供任何方法来验证其输入。

解决此问题的一个简单方法是使用 JSpinner。 JOptionPane 允许将组件和数组用作消息对象,因此您可以这样做:

int min = 1;
int max = 10;
int initial = 5;

JSpinner inputField =
new JSpinner(new SpinnerNumberModel(initial, min, max, 1));

int response = JOptionPane.showOptionDialog(frame,
new Object[] { "Number you want:\n", inputField },
"Enter number",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE,
null, null, null);

if (response == JOptionPane.OK_OPTION) {
int myNumber = (Integer) inputField.getValue();
// Do stuff with myNumber here
} else {
System.out.println("User canceled dialog.");
}

您也可以按照您的建议,将 JFormattedTextField 作为消息对象而不是 JSpinner 传递。

关于java - JOptionPane/输入对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549810/

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