Java Swing:如何防止JOptionPane.showConfirmDialog() 聚焦?
Java Swing: How to prevent JOptionPane.showConfirmDialog() from focusing?
在我的应用程序中,我在几个地方使用了 JOptionPane.showConfirmDialog()。
我现在的需求是防止它聚焦按钮,这样当用户按下 时,对话框仍然存在。
有没有一种方法可以做到这一点而不必编写我自己的对话框扩展?
澄清一下:主要问题是当用户按下回车键时它可能不会关闭。对话框不聚焦只是实现这一点的一种明显方式。
如果您设置自定义按钮并将初始按钮值设置为 null,它将为您提供所需的行为:没有初始焦点按钮,因此按 Enter 键不会执行任何操作。
看下面的例子:
public class Test {
public static void main(final String[] args) {
final Object[] options = { "OK", "Cancel" };
JOptionPane.showOptionDialog(null, "Enter won't work.", "Title",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options,
null); // this is the trick
JOptionPane.showOptionDialog(null, "Can press Enter.", "Title",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[1]);
}
}
在我的应用程序中,我在几个地方使用了 JOptionPane.showConfirmDialog()。
我现在的需求是防止它聚焦按钮,这样当用户按下
有没有一种方法可以做到这一点而不必编写我自己的对话框扩展?
澄清一下:主要问题是当用户按下回车键时它可能不会关闭。对话框不聚焦只是实现这一点的一种明显方式。
如果您设置自定义按钮并将初始按钮值设置为 null,它将为您提供所需的行为:没有初始焦点按钮,因此按 Enter 键不会执行任何操作。
看下面的例子:
public class Test {
public static void main(final String[] args) {
final Object[] options = { "OK", "Cancel" };
JOptionPane.showOptionDialog(null, "Enter won't work.", "Title",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options,
null); // this is the trick
JOptionPane.showOptionDialog(null, "Can press Enter.", "Title",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[1]);
}
}