我有两个类:类jDialog和JFrame
class JFrame {
private jDialog jd;
private JButton b;
public JFrame(){
b actionListener {
jd = new jDialog();
jd.setModal(true);
jd.setVisible(true);
String someString = jd.getString();
checkIfExists(someString);
}
}
}
public void checkIfExists(String someString){
if(someString exists) {
JOptionPane.showMessageDialog(null,"String exists);
jd.setVisible(true);
} else {
save someString
jd.setVisible(true);
}
}
class jDialog {
private JButton a;
private String s = "";
private JTextField t;
public jDialog{
a actionListener {
s = t.getText();
setVisible(false);
}
}
public String getString() {
return s;
}
}
知道如何保持jDialog运行吗?我只使用setVisible()来隐藏它,而不使用dispose();
当我试图编辑textfield时,如果字符串存在,它不会返回到字符串的“检查”
这是因为checkifexists(someString)
是在b
监听器中完成的,该监听器实例化一个新的jdialog()
,立即获取字段中的字符串并执行检查。
您应该只实例化一个JDialog
(在JFrame
代码中):
class JFrame {
private jDialog jd = new jDialog();
在B
监听器集可见的JD
对象(并最终重置JTextField
的内容):
b actionListener {
jd.setVisible(true);
在A
侦听器(在JDialog
类中)中执行检查:
a actionListener {
checkIfExists(t.getText());
setVisible(false);
}