2013-10-18 37 views
0

我非常難以將鍵入的值記錄到類屬於類2的String類型的變量中屬於類1的JTextField中,例如,如果我在JTextField類1中鍵入單詞「Test」,當我按下類1中的按鈕時,我希望在JTextField類1中輸入的值記錄在類2中的變量類型字符串中,因此我使用此我想要的變量,你能幫我一下嗎?我試圖創建一個類1的對象,並使用getText和String,但沒有成功。當我在class2中看到系統時,結果爲NULL! :(將JTextField的值寫入另一個類的String類型的變量(JAVA)

謝謝

代碼:

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){   

    } 
} 

感謝

回答

0

IIRC,你想設置一個變量(讓我們將其命名爲Class2)與Class1中的JTextField的值進行比較?

只需將一個public(!)方法添加到Class2中,該方法將String作爲參數並將s的值設置爲給定的String。
在Class1中,只需爲該按鈕創建一個ActionListener,該按鈕將以JTextField的值作爲參數來調用Class2的公共方法。

如果您在問題中包含code sample,我可以幫助您更多。

+0

嗨,兄弟,看看,我把代碼。很感謝。 :) –

+0

可以給我一個代碼bro的例子嗎?我是一個新的Java程序員,非常感謝! –

+0

你的應用程序的輸出是什麼?我認爲您應該更多地瞭解面向對象的編程以及代碼將如何執行(特別是以何種順序執行)。在其構造函數中Class2中的字段輸出將不起作用,因爲您首先創建Class2對象**,然後將該字段設置爲Class2 **。這意味着,在Class2的構造函數調用中,其字段將不會被初始化。 您也不必在'fieldOfClass1.getText()'上調用'toString()',因爲它已經返回一個字符串:http://docs.oracle.com/javase/7/docs/api/javax/swing /text/JTextComponent.html#getText() – wullxz

相關問題