我正在使用聊天应用程序。在这个应用程序中,我有一个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当我执行这些更改时,我会告诉你。 –