クライアントとサーバーを調べ始めたばかりで、クライアントをGUIにリンクしています。これまでのところ、JTextField
(「入力」と呼ばれる)にテキストを入力すると、テキストが送信されClient.java
、印刷されて確認されます動作します。ただし、何かを送信してJTextArea
(「出力」と呼ばれる) に追加するように設定すると、送信されて印刷できますが、に設定されていませんJTextArea
。私も使ってみsetText
ましたが、どちらもうまくいきません。
実行するClient.java
と起動し、cmdで次のように表示されます
sent
次に、それのコマンドClientGUI.java
で
it worked.
これは、cmd ではなく gui に送信されることを意図していたものです。
JTextArea
from クラスにテキストを追加するにはどうすればよいClient
ですか?
完全なコード:
ClientGUI.java:
private void InputActionPerformed(java.awt.event.ActionEvent evt) {
String input = Input.getText();
Client c = new Client();
c.input(input);
}
public void output() {
Output.append("it worked.");
//Output.append(null);
}
Client.java:
public void input(String input) {
System.out.println(input);
}
public void startUP() {
System.out.println("sent");
ClientGUI cg = new ClientGUI();
}
public static void main(String args[]) {
Client c = new Client();
c.startUP();
new ClientGUI().setVisible(true);
try {
Socket skt = new Socket("localhost", 1234);
BufferedReader in = new BufferedReader(new
InputStreamReader(skt.getInputStream()));
System.out.print("Received string: '");
while (!in.ready()) {}
String output = in.readLine();
System.out.println(output); // Read one line and output it
System.out.print("'\n");
in.close();
}
catch(Exception e) {
System.out.print("Whoops! It didn't work!\n");
}
}