質問編集履歴
1
問題点の減少 ソースコードの変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
javaでチャットアプリを作ろうと思い,CUIでチャットサーバーをjavaFXを使用してチャットクライアントを作成しました.チャットサーバーの方はメッセージを受信,送信を送るものをスレッドで表現しています.GUIの方のソースコードではconnectボタンをクリックするとソケットの接続とメッセージの受信を行い,中央のテキストエリアにサーバーから送られたメッセージを表示するスレッドと送信ボタンをクリックするとテキストフィールドに入力されている文字をサーバーに送信するスレッドを作成してそれらをイベント発生時に開始するようなものを作成しました.
|
2
|
+
しかし,問題が二つ発生してしまいました
|
3
|
+
- サーバーに送信できない
|
4
|
+
- sendボタンをクリックしてしまうとテキストフィールドに文字が入力できなくなる
|
2
|
-
|
5
|
+
このうちのサーバーに送信する問題は解決できたのですが下の問題が解決できません
|
6
|
+
原因がわからないので教えてください
|
3
7
|
```チャットサーバー
|
4
8
|
import java.io.IOException;
|
5
9
|
import java.net.ServerSocket;
|
@@ -179,7 +183,7 @@
|
|
179
183
|
}
|
180
184
|
@FXML protected synchronized void handleButtonSendMessageAction(ActionEvent event) {
|
181
185
|
|
182
|
-
taskSendMessage = new NetSendMessageTask(socket);
|
186
|
+
taskSendMessage = new NetSendMessageTask(socket,sendMessage.getText());
|
183
187
|
sendMessage.textProperty().bind(taskSendMessage.messageProperty());
|
184
188
|
|
185
189
|
Thread thread = new Thread(taskSendMessage);
|
@@ -234,16 +238,21 @@
|
|
234
238
|
import java.io.*;
|
235
239
|
import java.net.Socket;
|
236
240
|
|
241
|
+
import javafx.beans.property.SimpleStringProperty;
|
242
|
+
import javafx.beans.property.StringProperty;
|
237
243
|
import javafx.concurrent.Task;
|
238
244
|
|
239
245
|
public class NetSendMessageTask extends Task<Void>{
|
240
246
|
private Socket socket;
|
247
|
+
private StringProperty message = new SimpleStringProperty();
|
241
248
|
|
242
249
|
|
243
|
-
protected NetSendMessageTask(Socket socket){
|
250
|
+
protected NetSendMessageTask(Socket socket,String message){
|
244
251
|
this.socket = socket;
|
252
|
+
this.message.set(message);
|
245
253
|
}
|
246
|
-
|
254
|
+
|
255
|
+
|
247
256
|
@Override
|
248
257
|
protected Void call() throws Exception {
|
249
258
|
|
@@ -256,8 +265,8 @@
|
|
256
265
|
break;
|
257
266
|
}
|
258
267
|
// データの送信
|
259
|
-
|
268
|
+
|
260
|
-
dos.writeUTF(message);
|
269
|
+
dos.writeUTF(message.toString());
|
261
270
|
updateMessage("");
|
262
271
|
|
263
272
|
|
@@ -266,6 +275,7 @@
|
|
266
275
|
}
|
267
276
|
}
|
268
277
|
|
278
|
+
|
269
279
|
```
|
270
280
|
```GUIレイアウト
|
271
281
|
<?xml version="1.0" encoding="UTF-8"?>
|