当前位置: 首页 > 知识库问答 >
问题:

JDialog setVisible

刘承运
2023-03-14

我有两个类:类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();

共有1个答案

曾歌者
2023-03-14

当我试图编辑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);
}
 类似资料:

相关问答

相关文章

相关阅读