以下代码显示了一个预期的对话框,除了没有按钮:
final JPasswordField passwdField = new JPasswordField();
passwdField.setColumns(20);
final JComponent[] inputs = new JComponent[] { passwdField };
int res = JOptionPane.showOptionDialog(null, "Enter Password", "Login",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
null, inputs, "");
显示以下对话框(Java 6.2?,Windows 7 64-Bit):
为什么没有确定/取消按钮? (顺便说一下,对话框不可调整大小,所以我不知道它们是否在可见框架之外)
(另外,按Enter键不关闭对话框,“x”关闭对话框)
答案 0 :(得分:2)
您的问题在于输入数组。阅读API,它会告诉你它应该是不同的。我通常使用一个String数组,每个String代表一个按钮String,或者有时我使用Objects的混合,混合组件和字符串。例如,
JPasswordField passField = new JPasswordField(10);
Object[] inputs = {passField, "OK", "Cancel"};
int res = JOptionPane.showOptionDialog(null, "Enter Password", "Login",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
null, inputs, "");
if (res == 1) {
System.out.println("Password is: " + new String(passField.getPassword()));
}