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

Java 在jTextField中设置文本,然后检索该文本,java,swing,jframe,textfield,gettext,Java,Swing,Jframe,Textfield,Gettext,我有一个如上所示的程序。我需要在单击submit按钮时在文本字段中设置文本“hello”。它起作用了。但是,我需要在一个名为valueGen的函数中使用该文本,并在其中打印它。但执行上述代码不会打印文本。这个代码有什么问题 这是无组织的。始终将类变量放在顶部 就像酷哥说的,把myFrame换成NewJTest() valueGen实际上是在单击按钮之前被调用的。将其放入jTextField1ActionPerformed;这可能会解决它 In netbeans out out out of th

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

  • 这是无组织的。始终将类变量放在顶部

  • 就像酷哥说的,把
    myFrame
    换成
    NewJTest()

  • valueGen实际上是在单击按钮之前被调用的。将其放入
    jTextField1ActionPerformed
    ;这可能会解决它


  • In netbeans out out out of theSystem.out.println()将显示在输出窗口中,如下图所示。 如果要将其显示为消息,请将以下方法替换为valueGen()方法

    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;
    
    }
    
    并使用myFrame.setVisible(true)使JFrame可见

    private static void valueGen(javax.swing.JTextField jTextField1) {
    
    String x = jTextField1.getText();
    System.out.println(x);
    JOptionPane.showMessageDialog(null, x);
    }
    

    jTextField1.getText()没有做任何有用的事情。。。。你是说
    myFrame().setVisible(true)而不是
    NewJFrame().setVisible(true)。另外,您提供的代码乱七八糟,无法编译;要从该文本字段中获取值?它是无组织的,因为它是在netbeans中生成的。我试过你说的,但没用。
    
    public void run() {
    
                NewJFrame myFrame = new NewJFrame();
                myFrame.setVisible(true);
     valueGen(myFrame.getTextField());
            }