我的JOptionPane有一个问题,如果我不输入任何东西,无论我按什么(ok,cancel或x按钮(JOptionPane的右上角按钮)),它都会提示我,直到我输入一个正值。但是我只希望当我按下ok时出现提示。
如果我点击取消或x按钮(JOptionPane的右上角按钮),它将关闭JOptionPane
我怎么能这样呢?
import javax.swing.JOptionPane;
public class OptionPane {
public static void main(final String[] args) {
int value = 0;
boolean isPositive = false , isNumeric = true;
do {
try {
value = Integer.parseInt(JOptionPane.showInputDialog(null,
"Enter value?", null));
} catch (NumberFormatException e) {
System.out.println("*** Please enter an integer ***");
isNumeric = false;
}
if(isNumeric) {
if(value <= 0) {
System.out.println("value cannot be 0 or negative");
}
else {
System.out.println("value is positive");
isPositive = true;
}
}
}while(!isPositive);
}
}
只需将代码移到<code>try
示例代码:
public static void main(final String[] args) {
int value = 0;
while (true) {
try {
value = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter value?", null));
if (value <= 0) {
System.out.println("value cannot be 0 or negative");
} else {
System.out.println("value is positive");
break;
}
} catch (NumberFormatException e) {
System.out.println("*** Please enter an integer ***");
}
}
}
JoptionPane#showInputDialog returns user's input, or null meaning the user canceled the input.
所以不是直接解析返回值。首先检查它是否为空(用户已取消),如果不为空则什么也不做,然后解析整数值
基本方法如下所示:
在@MadProgrammer评论后更新。
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class DemoJOption {
public static void main(String args[]) {
int n = JOptionPane.showOptionDialog(new JFrame(), "Message",
"Title", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
null, new Object[] {"Yes", "No"}, JOptionPane.YES_OPTION);
if (n == JOptionPane.YES_OPTION) {
System.out.println("Yes");
} else if (n == JOptionPane.NO_OPTION) {
System.out.println("No");
} else if (n == JOptionPane.CLOSED_OPTION) {
System.out.println("Closed by hitting the cross");
}
}
}
我创建了类型。当它打开它时,它会向我显示两个按钮:OK和Cancel。我想在按下取消按钮时处理该操作,但我不知道如何到达该操作。我怎么才能拿到?
一个解决方案是(如果我读对了的话)添加一个任意的JPanel,在这个例子中是一个标签。我的问题是在消息窗口中需要一个JComboBox对象,并且(与解决coffee_table的问题相同)使用JComboBox似乎删除了取消按钮。如果我将YES_NO_CANCEL_OPTION替换为OK_CANCEL_OPTION或question_message并不重要。 对于JOptionPane家族,我仍然
问题内容: Javascript确认弹出窗口,我想显示“是,否”按钮,而不是“确定”和“取消”。 我已经使用了以下vbscript代码: 这仅适用于IE,在FF和Chrome中,但无效。 是否有任何工作来实现此目的? 我也想更改弹出窗口的标题,如在IE中显示“ Windows Internet Explorer”,我想在这里显示我自己的应用程序名称。 问题答案: 不幸的是,没有跨浏览器的支持来打开
问题内容: Javascript确认弹出窗口,我想显示“是,否”按钮,而不是“确定”和“取消”。 我已经使用了以下vbscript代码: 这仅适用于IE,在FF和Chrome中,但无效。 是否有任何工作来实现此目的? 我也想更改弹出窗口的标题,如在IE中显示“ Windows Internet Explorer”,我想在这里显示我自己的应用程序名称。 问题答案: 不幸的是,没有跨浏览器的支持来打开
问题内容: 我试图获取传递给JOptionPane的自定义按钮返回的值。但是,我通过的按钮根本不返回任何值。仅当按下退出按钮时,才返回-1的值。我需要这样做,因为我正在更改启用或禁用的按钮的属性。我假设我需要按钮以某种方式将某些信息返回给JOptionPane。任何想法? Nb这与我以前的问题有关-JOptionPane灰色输出一个按钮 我尝试像您说的那样设置按钮的值,但是它们从不返回OK或CAN