java-无法从文本字段获取数据

0kjbasz6  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(354)

我已经建立了这个应用程序,我试图运行它,但我无法从一个数据库获取数据 JTextField . 我不知道怎么了。。。这是相关的代码。。。
构造jtextfield:(file main.java)

public class Constructor extends javax.swing.JFrame {

   public Constructor() {
      initComponents();
   }

   private void initComponents() {    
      refernce = new javax.swing.JTextField();
      /*Some other code in here*/
   }

   private javax.swing.JTextField refernce;
      /*Some other code in here*/       
   }

从文本字段获取数据:(file save.java)

public class Save {

   /*Some other code in here*/

   private javax.swing.JTextField refernce;

   String refernceText = refernce.toString();

}

错误报告:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Save.<init>(Save.java:79)
at Constructor.saveMouseClicked(Constructor.java:444)
at Constructor.access$200(Constructor.java:15)
at Constructor$3.mouseClicked(Constructor.java:210)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
... (it carry on(ask if you need it))

我哪里出错了???也没有语法错误等。。。

jgovgodb

jgovgodb1#

有个问题,

public class Save {
  private javax.swing.JTextField refernce; <---- ISSUE
  ...
  String refernceText = refernce.toString();  
}

类save中的引用字段初始化为 null .
必须传递对象引用的jtextfield的引用 Constructor 类到 Save 班级。
例如,

public class Save {
  private javax.swing.JTextField refernce;
  public Save(javax.swing.JTextField refernce){
    this.refernce=refernce;
  } 
  ...
  //and use JTextField in your methods
  void testMethod() {
    if(refernce!=null){
     String refernceText = refernce.getText();
     .....
    }
  }
}
jdg4fx2g

jdg4fx2g2#

看起来您在save类中声明了jtextfield类型的引用(顺便说一句,对于变量来说这是个糟糕的名称),但是您从未初始化过它。这就是为什么会出现nullpointerexception。
你可以在构造函数类中创建一个新的。
在构造函数类中更新jtextfield之后,需要将jtextfield变量作为参数传递给save类的构造函数或save类的方法,并使用该参数从文本字段中获取文本。
另外,您不想在jtextfield上调用tostring。tostring不会获取textfield中的数据。您需要gettext()。

相关问题