Java 我想我需要添加一个keylistener

Java 我想我需要添加一个keylistener,java,swing,button,text,server,Java,Swing,Button,Text,Server,我有这个代码,这是一个聊天客户端,与我的服务器,我的工作。在textEnter字段中,我需要它,因此如果按enter键,它将执行与单击send按钮相同的操作。如果你们中有人能帮我找到一个方法,我将非常感激 package-TryOne; /*要做的事情 *1.fix(java.lang.ArrayIndexOutOfBoundsException:2)“删除文本后的空格和新行” *2.修复断开连接后未清除的用户名 *3.修复服务器聊天日志 * 4. */ 导入java.net。*; 导入jav

我有这个代码,这是一个聊天客户端,与我的服务器,我的工作。在textEnter字段中,我需要它,因此如果按enter键,它将执行与单击send按钮相同的操作。如果你们中有人能帮我找到一个方法,我将非常感激

package-TryOne;
/*要做的事情
*1.fix(java.lang.ArrayIndexOutOfBoundsException:2)“删除文本后的空格和新行”
*2.修复断开连接后未清除的用户名
*3.修复服务器聊天日志
* 4.
*/
导入java.net。*;
导入java.awt.event.KeyEvent;
导入java.io.*;
导入java.util.*;
导入javax.swing.JTextField;
公共类ChatClient扩展了javax.swing.JFrame{
静态字符串username;/*如果用户名未正确复制到字段,请删除静态字符串*/
字符串serverIP=“localhost”;
int端口=13;
插座;
缓冲读取器;
版画作家;
ArrayListuserList=new ArrayList();
布尔值未连接=假;
静态布尔值isPressed=false;
/**创建新的表单聊天*/
公共聊天室客户端(){
初始化组件();
}
公共类IncomingReader实现Runnable{
公开募捐{
字符串[]数据;
字符串流,done=“done”,connect=“connect”,disconnect=“disconnect”,chat=“chat”;
/*如果(显示){
sendButton.addActionListener(新的java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行发送按钮操作(evt);
系统输出打印项次(evt);
}});
isPressed=false;
}*/
试一试{
而((stream=reader.readLine())!=null){
数据=stream.split(“:”);
if(数据[2]。等于(聊天)){
追加(数据[0]+“:“+数据[1]+”\n”);
setCaretPosition(chatTextArea
.getDocument().getLength());
}else if(数据[2]。等于(连接)){
chatTextArea.removeAll();
userAdd(数据[0]);
}else if(数据[2]。等于(断开连接)){
userRemove(数据[0]);
}else if(数据[2]。等于(完成)){
usersList.setText(“”);
写作者();
userList.clear();
}
}
}捕获(例外情况除外){}
}
}
public void ListenThread(){
Thread IncomingReader=新线程(new IncomingReader());
IncomingReader.start();
}
公共void userAdd(字符串数据){
添加(数据);
}
公共void userRemove(字符串数据){
chatterxtarea.append(数据+“已断开连接。\n”);
}
公共无效写作者(){
String[]templast=新字符串[(userList.size())];
toArray(圣殿骑士);
for(字符串标记:tempList){
usersList.append(令牌+“\n”);
}
}
公共无效发送断开连接(){
字符串bye=(username+“::Disconnect”);
试一试{
writer.println(bye);//向服务器发送断开连接信号。
writer.flush();//刷新缓冲区
}捕获(例外e){
chatterxtarea.append(“无法发送断开连接消息。\n”);
}
}
公共空间断开连接(){
试一试{
附加(“已断开连接。\n”);
sock.close();
}捕获(例外情况除外){
chatterxtarea.append(“断开连接失败。\n”);
}
断开连接=错误;
usernameField.setEditable(true);
usersList.setText(“”);
}
/**
*从构造函数中调用此方法来初始化表单。
*警告:不要修改此代码。此方法的内容始终为
*由表单编辑器重新生成。
*/
@
抑制警告(“未选中”)
// 
私有组件(){
jScrollPane1=newjavax.swing.JScrollPane();
inputExtArea=newjavax.swing.JTextArea();
jScrollPane2=newjavax.swing.JScrollPane();
chatterxtarea=newjavax.swing.JTextArea();
jLabel1=newjavax.swing.JLabel();
usernameField=newjavax.swing.JTextField();
connectButton=newjavax.swing.JButton();
disconnectButton=newjavax.swing.JButton();
sendButton=newjavax.swing.JButton();
jScrollPane3=newjavax.swing.JScrollPane();
usersList=newjavax.swing.JTextArea();
jLabel2=newjavax.swing.JLabel();
jMenuBar1=newjavax.swing.JMenuBar();
jMenu1=newjavax.swing.JMenu();
jMenuItem1=newjavax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle(“聊天客户端”);
InputExtArea.setColumns(20);
InputExtArea.setLineWrap(真);
输入extarea.setRows(5);
jScrollPane1.setViewportView(InputExtArea);
chatTextArea.setColumns(20);
chatterxtArea.setEditable(false);
chatTextArea.setFont(新java.awt.Font(“Times new Roman”,0,12));//NOI18N
chatterxtarea.setLineWrap(true);
设置行(5);
jScrollPane2.setViewportView(chatterxtarea);
jLabel1.setText(“用户名:”);
usernameField.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
usernameFieldActionPerformed(evt);
}
});
connectButton.setText(“连接”);
connectButton.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行连接按钮操作(evt);
}
});
disconnectButton.setText(“断开”);
disconnectButton.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行断开按钮操作(evt);
}
});
sendButton.setText(“发送”);
sendButton.addActionListener(新的java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行发送按钮操作(evt);
系统输出打印项次(evt);
}
});
usersList.setEditable(false);
使用者
  usernameField.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
      usernameFieldActionPerformed(evt);
    }
  });
  usernameField.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
      // use the actionPerformed method you've already created for the send button
      sendButtonActionPerformed(evt);
      System.out.println(evt);
    }
  });