2013-03-28 52 views
0

由於我的計劃的一部分,我只是想打印出哪些用戶在JTextField中如何打印出輸入或JTextFiled

這裏進入是我做的,但沒有在所有的工作。

JTextField myInput = new JTextField(); 
String word = myInput.getText(); 

myInput.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e) 
{ 
System.out.print(word); 
} 

}); 

任何想法?

回答

2

在actionlistener中,您需要從文本字段中檢索值。

System.out.print(myInput.getText()); 

此刻,你是因爲在您撥打的getText點()是沒有在文本字段得到一個空值,因爲用戶沒有時間來輸入一些東西。

+0

謝謝你的回答,但沒有奏效:它給myInput.getText()提供了一個錯誤。這裏是錯誤:不能在一個不同的方法中定義的內部類中引用非最終變量myInput –

+0

因此,您需要將該文本字段聲明爲實例變量。這樣你就可以從內部類中正確訪問它。 –

1

您沒有更新actionPerformed中的文本(word),所以它保持不變。嘗試:

myInput.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e) 
{ 
System.out.print(myInput.getText()); 
} 

因此,你甚至不需要申報word可言。

+0

謝謝你的回答,但沒有奏效:它給myInput.getText()提供了一個錯誤。這裏是錯誤:不能引用在一個不同的方法中定義的內部類中的非最終變量myInput –

1
final JTextField myInput = new JTextField(); 

myInput.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) { 
     System.out.print(myInput.getText()); 
    } 
}); 

調用myInput.getText()actionListener外將指派空stringword

+0

感謝您的回覆。當我在動作偵聽器中移動第二行時,它會給出與system.out.print(myInput.getText)相同的錯誤;錯誤是哪裏:無法引用非終極變量myInput內部類中定義一個不同的方法 –

1

採取行動執行方法內的第二行

+0

我不明白你爲什麼要把它設置爲最終,我認爲這可能會導致麻煩,如果你想改變在您第一次設置它之後的值 –

0

謝謝大家的答案。事實上,你們都是對的,我只需要把這個變量作爲最終的去除。我仍然不知道爲什麼我應該補充一點,但現在正在工作。我希望'最後'不會在以後造成任何問題。