私はチャットアプリケーションで作業しています。このアプリでは、ユーザがEnterを押すとメッセージを送信するJTxtField txtMessage
があります。私は同じことを行うJButton btn_send
を追加したいと思いますが、btn_send.addActionListener(enviar_mensaje)
を追加すると、JTextField
にEnterを押すまでメソッドは何もしません。Javaの他の要素と同じactionListenerを使用する方法
JTxtField
とJButton
を同じ方法で使用するにはどうすればよいですか?
public void write(){
Thread writeThread = new Thread(new Runnable(){
public void run(){
try{
writer = new PrintWriter(socket.getOutputStream(),true);
txtMessage.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String sendMessage = txtMessage.getText();
writer.println(sendMessage);
txtMessage.setText("");
chatArea.append("Server say: "+sendMessage+"\n");
btnClean.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
chatArea.setText("");
}
});
}
});
}catch(Exception ex){
ex.printStackTrace();
}
}
});
writeThread.start();
}
あなたは 'actionPerformed'の中にアクションリスナーを追加していますか?それは良いことではありません。スレッドの前にアクションリスナーを準備します(私はそれが何のためにわかりません)。 – user1803551
ヒント:ここでの主な言語は**英語**です。これはコードにも当てはまります。ソースコードを直接貼り付けるのではなく、英語の用語を使用する最小限の実行可能な例を作成することを検討してください。良い回答を得るために多くの手助けをします。そして:under_baresはJavaの名前ではなく、あなたは**ただSOME_CONSTANTの中でそれらを使用します。 – GhostCat
@ user1803551これらの変更を行うと、私はあなたに伝えます。 –