我正在使用聊天應用程序。在這個應用程序中,我有一個JTxtField txtMessage
,當用戶按Enter鍵時發送消息。我想添加一個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當我執行這些更改時,我會告訴你。 –