0
我在這裏是新來的,我是Java編程的新手,但是我不得不報名參加這個問題,因爲它讓我困擾了好幾天。 無論如何,我正在寫TCP客戶端。我做了兩個線程:一個用於從System.in讀取併發送到套接字,另一個用於從套接字讀取並寫入System.out。 這工作得很好,但現在我需要做一個GUI,我知道如果我想保持我的GUI交互,我需要使用任務和/或服務,但我不知道如何使我的線程作爲服務。 這裏的代碼(即在終端工作):JavaFX GUI卡住
public static class ReadThread extends Thread
{
BufferedReader in;
String word;
ReadThread(BufferedReader in)
{
this.in = in;
}
@Override
public void run()
{
try {
while((word = in.readLine()) != null)
System.out.println(word);
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
與此類似,我做了WriteThread,但我不想讓這個帖子凌亂所以...... 無論如何,當我試圖實現這個作爲服務,我不得不在「最終」中產生一些其他錯誤,如此等等。 我會很感激,如果你能幫我在我的特定情況下,因爲我可能讀這個網站上的所有JavaFX的GUI問題haha 在此先感謝和抱歉的長篇文章! :d
非常感謝!有用!但現在我必須從textField和textArea中取代並設置System.in和System.out。 我實際上使它從System.in讀取並寫入textArea,但我不知道如何從textField獲取文本。我不想一直使用發送按鈕,而且我也不知道如何將一個事件方法發送到服務類。 任何想法? – Bade
在TextField或TextArea中,您可以在textfield的textProperty()上添加一個eventListener,並在文本更改時調用它。或者你可以只爲textfield.getText() –
但我應該.start()新的writeService任務與文本上的每個新事件改變或我可以以某種方式傳遞一個方法writeService? 對不起,但我覺得很容易混淆變量範圍的原因:( 最讓我困惑的是這兩行: 'while((command = in.readLine())!= null) out.println(naredba) ;'。我無法編寫command = textField.getText();導致它不知道何時獲取文本 對不起,因爲在頸部疼痛,但我需要做到這一點:D – Bade