2013-09-30 95 views
1

時JTextField想要成爲最後一個我正在爲這個多人遊戲學校工作,我目前正嘗試從JTextField獲取用戶名。當我嘗試使用.getText()

下面的代碼有問題:

JTextField textField = new JTextField(); 

new Statistics(textField.getText()); 

統計需要一個字符串,但是當我嘗試這一點,日食告訴我,我需要轉換的JTextField的決賽。

該代碼起作用,因爲統計目前沒有做任何事情,但我認爲這不會發生,並且稍後會在我開始實施統計時破壞我的代碼。任何解釋和修復?

+0

你可能在匿名內部類中訪問它。 –

+3

這絕對不是完整的代碼。我的猜測是,它是一個你在內部類中訪問的局部變量,但是你沒有給我們足夠的信息。 –

+0

確切的消息是哪一個?也許你在嵌套類中使用'textField'? – SJuan76

回答

3

此調用:new Statistics(textField.getText());可能發生在內部匿名類內部,也許在ActionListener內部,並且您的textField是本地變量。問題是,匿名內部類使副本他們使用的本地字段,如果字段不是最終的,則副本可能不會與原來同步導致各種問題。

我建議您在類中聲明textField,而不是在方法或構造函數內部聲明,從而使其成爲類字段。如果你這樣做,那麼你將不必宣佈它是最終的。

否則,如果你不能或不應該這樣做,那麼確定,繼續並聲明它(你不能「投」它)作爲最終。

+0

是的,我在查看我的代碼後發現了這一點。老實說,這只是我的一部分放屁。不過,感謝您的幫助。 – KuroMajutsu

+0

@KuroMajutsu:感謝您的跟進。 –

相關問題