0

我很难在属于类 2 的 String 类型的变量中记录键入到属于类 1 的 JTextField 中的值,例如,如果我在按下按钮时在 JTextField 类 1 中键入单词“Test”类 1,我想将 JTextField 类 1 中输入的值记录在类 2 中的变量类型 String 上,所以我随意使用这个变量,你能帮我吗?我试图创建一个类 1 的对象并使用 getText 和 to String,但还没有成功。当我在 class2 中看到 System 时,结果为 NULL !:(

谢谢你。

编码 :

public class Class1 extends javax.swing.JFrame {

    public Class1() {    
        initComponents();    
    }    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          

    private void initComponents() {
        fieldOfClass1 = new javax.swing.JTextField();    
        bottonOfClass1 = new javax.swing.JButton();    
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);    
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());    
        getContentPane().add(fieldOfClass1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 39, 336, 38));    
        bottonOfClass1.setText("Botton");    
        bottonOfClass1.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {    
                bottonActionPerformed(evt);    
            }    
        });

        getContentPane().add(bottonOfClass1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 114, 161, 45));
        pack();

    }// </editor-fold>  
    private void bottonActionPerformed(java.awt.event.ActionEvent evt) {                                       

Class2 classTwo = new Class2();

    classTwo.receiveFieldValueOfClass1= returnField();
        System.out.println(classTwo.receiveFieldValueOfClass1);
    } 

    String returnField(){    
      return fieldOfClass1.getText().toString();
    }    

    public static void main(String args[]) {
         new Class1().setVisible(true);
    }

    // Variables declaration - do not modify  
    private javax.swing.JButton bottonOfClass1;
    private javax.swing.JTextField fieldOfClass1;
    // End of variables declaration
}

第 2 类:

public class Class2 {

    public String receiveFieldValueOfClass1;

    Class2(){
        System.out.println("This is a valor of Jtext Field Class 1 ! = "+receiveFieldValueOfClass1);
    } 

    public static void main (String[]args){         

    }
}

谢谢

4

1 回答 1

0

IIRC,您想将 Class2 中的变量(我们将其命名为 s)设置为 Class1 中 JTextField 的值吗?

只需向 Class2 添加一个 public(!) 方法,该方法接受一个字符串作为参数并将 s 的值设置为给定的字符串。
在 Class1 中,只需为调用 Class2 的公共方法的按钮创建一个 ActionListener,并将 JTextField 的值作为参数。

如果您在问题中包含代码示例,我可以为您提供更多帮助。

于 2013-10-18T22:59:38.120 回答