在jTextField中设置文本,然后检索该文本

时间:2015-06-07 12:37:52

标签: java swing jframe textfield gettext

package test2;
public class NewJFrame extends javax.swing.JFrame {

private static void valueGen(javax.swing.JTextField jTextField1) {

    String x = jTextField1.getText();
    System.out.println(x);
}
public NewJFrame() {
    initComponents();
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){                                         
    jTextField1.setText("Hello");

}                                        

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            

}                                           

public javax.swing.JTextField getTextField() {
    jTextField1.getText();
    return this.jTextField1;
}

public static void main(String args[]) {

     NewJFrame myFrame = new NewJFrame();
     valueGen(myFrame.getTextField());

     java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new NewJFrame().setVisible(true);
        }
    });

}

private javax.swing.JButton jButton1;
private javax.swing.JTextField jTextField1;

}

我有一个如上所示的程序。单击提交按钮时,我需要在文本字段中设置文本“hello”。有用。但后来我需要在一个名为valueGen的函数中使用该文本进行打印。但是执行上述代码不会打印文本。这段代码有什么问题?

2 个答案:

答案 0 :(得分:0)

  1. 它没有组织。始终将类变量置于顶部。

  2. 像Cool Guy说的那样,把myFrame代替new NewJTest()

  3. valueGen实际上被称为之前,您可以点击该按钮。把它放在jTextField1ActionPerformed;这可能会解决它。

答案 1 :(得分:0)

在netbeans中输出 System.out.println(); 将显示在输出窗口中,如下图所示。 如果您想将其显示为消息,请使用 valueGen() 方法替换以下方法。

private static void valueGen(javax.swing.JTextField jTextField1) {

String x = jTextField1.getText();
System.out.println(x);
JOptionPane.showMessageDialog(null, x);
}

使用 myFrame.setVisible(true); 使JFrame可见。

public void run() {

            NewJFrame myFrame = new NewJFrame();
            myFrame.setVisible(true);
 valueGen(myFrame.getTextField());
        }

Out put of System.out.println()