2014-02-15 128 views
0

當我打電話給第二班時,String i不會打印到控制檯(僅用於相關代碼的片段)。任何人都可以告訴我哪裏出錯了嗎?

我在做什麼錯?

public class test1 { 
    static JTextField textField = new JTextField(10); 
} 
public static void main(String[] args) { 
    test2.main(args); 
} 

測試2級:

public class test2 { 

    public static void main(String args[]) { 
     String i = test1.textField.getText(); 
     System.out.println(i); 
    } 
} 
+0

哎呀忘了把這段代碼編在它現在 – user3313864

+0

你期待看到什麼價值? –

+0

完整的代碼帶來了一個帶有文本框的窗口,字符串我應該變成任何在文本框中輸入的內容 – user3313864

回答

0

總之:您的文本字段沒有文本,它是空的。

您應該設置一些默認文本,然後嘗試。在這種情況下,您將打印該默認文本而不是空文本。

但是,有接近問題!

你應該考慮靜態textField的使用,封裝和麪向對象的原則。
嘗試在定義的方法上使用值,這些方法將獲得您所需的內容,或者內部類將關注您的文本字段的狀態,或者至少通過訪問器/增變器。

在當前的表現,你可以有很多的問題,因爲每個實例可以處理值,等...

1

你只是初始化JTextField並沒有分配任何文本給它,所以你得到一個空字符串作爲輸出。爲了克服這個問題,只是,

更換

靜態的JTextField文本字段=新的JTextField(10);

通過

靜態的JTextField的TextField =新的JTextField( 「默認的文本」);

現在,只要您運行代碼,您將獲得輸出爲The Default Text將存儲到i


完整的代碼帶來了一個文本框一個窗口,該字符串我應該成爲無論是在文本框輸入

我看不到任何行到你的代碼帶來了一個JTextField

反正一個窗口,獲得這種類型的輸出,你應該用這個去:

// test1的

public class test1{ 
    static JTextField textField = new JTextField(10); 
    static JButton btn; 

    public static void main(String[] args) { 
    JFrame frame=new JFrame(); 
    JPanel panel=new JPanel(); 
    btn=new JButton("Show"); 
    panel.add(textField); 
    panel.add(btn); 
    btn.addActionListener(new ActionListener(){ 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     if(e.getSource()==btn){ 
      new test2(); 
     } 
    } 
    }); 
    frame.add(panel); 
    frame.setSize(400, 400); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

} 

} 

// test2的

public class test2 { 

    test2(){ 
      String i = test1.textField.getText(); 
      System.out.println("Text from textField:"+i); 

    } 
} 

輸出文本框

output

文字:嗨用戶

相關問題