Java 输入对话框[所需信息]
所以我有一个程序,当我点击一个按钮时,它会启动一个输入对话框。我需要的帮助是,一旦我从输入对话框中收集到信息,这些信息就消失了,我按Enter键,输入对话框就会重新出现。为什么? 还有,我怎样才能让它在输入对话框为空的情况下显示为错误,然后重复,直到它不是空的Java 输入对话框[所需信息],java,string,swing,input,output,Java,String,Swing,Input,Output,所以我有一个程序,当我点击一个按钮时,它会启动一个输入对话框。我需要的帮助是,一旦我从输入对话框中收集到信息,这些信息就消失了,我按Enter键,输入对话框就会重新出现。为什么? 还有,我怎样才能让它在输入对话框为空的情况下显示为错误,然后重复,直到它不是空的 调用rootPane.setDefaultButton时,指定的按钮由Enter键激活 要防止在输入不可接受时关闭JOptionPane,请创建实际的JOptionPane实例,然后创建自己的按钮并将其指定为选项。按钮的操作或Actio
调用
rootPane.setDefaultButton
时,指定的按钮由Enter键激活
要防止在输入不可接受时关闭JOptionPane,请创建实际的JOptionPane实例,然后创建自己的按钮并将其指定为选项。按钮的操作或ActionListener必须调用JOptionPane的setValue
方法:
final JOptionPane optionPane = new JOptionPane("What is your first name?",
JOptionPane.QUESTION_MESSAGE);
optionPane.setWantsInput(true);
Action accept = new AbstractAction("OK") {
private static final long serialVersionUID = 1;
public void actionPerformed(ActionEvent event) {
Object value = optionPane.getInputValue();
if (value != null && !value.toString().isEmpty()) {
// This dismisses the JOptionPane dialog.
optionPane.setValue(JOptionPane.OK_OPTION);
}
}
};
Object acceptButton = new JButton(accept);
optionPane.setOptions(new Object[] { acceptButton, "Cancel" });
optionPane.setInitialValue(acceptButton);
// Waits until dialog is dismissed.
optionPane.createDialog(null, "First Name").setVisible(true);
if (!Integer.valueOf(JOptionPane.OK_OPTION).equals(optionPane.getValue())) {
// User canceled dialog.
return;
}
String fn = optionPane.getInputValue().toString();
无关:永远不要对组件进行任何手动大小调整/定位-这是LayoutManager的专属责任。当您收集输入,并且输入对话框消失时,按钮会获得焦点吗?
final JOptionPane optionPane = new JOptionPane("What is your first name?",
JOptionPane.QUESTION_MESSAGE);
optionPane.setWantsInput(true);
Action accept = new AbstractAction("OK") {
private static final long serialVersionUID = 1;
public void actionPerformed(ActionEvent event) {
Object value = optionPane.getInputValue();
if (value != null && !value.toString().isEmpty()) {
// This dismisses the JOptionPane dialog.
optionPane.setValue(JOptionPane.OK_OPTION);
}
}
};
Object acceptButton = new JButton(accept);
optionPane.setOptions(new Object[] { acceptButton, "Cancel" });
optionPane.setInitialValue(acceptButton);
// Waits until dialog is dismissed.
optionPane.createDialog(null, "First Name").setVisible(true);
if (!Integer.valueOf(JOptionPane.OK_OPTION).equals(optionPane.getValue())) {
// User canceled dialog.
return;
}
String fn = optionPane.getInputValue().toString();