百度给做网站公司,企业网站建设的类型有哪些,徐州市经济技术开发区建设局网站,化学网站定制最近在学习Java swing#xff0c;写了一个域内聊天室#xff0c;实现用户登录ip,端口号之后#xff0c;进入聊天窗口聊天#xff1a; 通过菜单条增加了几个功能#xff0c;边框#xff0c;字体#xff0c;颜色和文件传输。风格里的样式都可以通过自己选择来设置。 介绍以… 最近在学习Java swing写了一个域内聊天室实现用户登录ip,端口号之后进入聊天窗口聊天 通过菜单条增加了几个功能边框字体颜色和文件传输。风格里的样式都可以通过自己选择来设置。 介绍以上。 但在实现发送的功能时想要增加默认回车发送消息功能 原来的send按钮监听事件代码 private class sendListener implements ActionListener{ Override public void actionPerformed(ActionEvent e) { String str editMsg.getText(); try { DataOutputStream dos new DataOutputStream(s.getOutputStream()); if(str.equals( ) || str.equals() || strnull){ JOptionPane.showMessageDialog(null, 输入不能为空请重新输入!, 提示,JOptionPane.OK_OPTION); }else{ dos.writeUTF(str); } dos.flush(); editMsg.setText(); } catch (IOException e1) { e1.printStackTrace(); } } 中间的用户不可编辑的消息显示区增加一个键盘监听事件 editMsg.addKeyListener(new KeyListener() { Override public void keyTyped(KeyEvent key1) { return; } Override public void keyReleased(KeyEvent key2) { int code key2.getKeyCode(); if(code10){ editMsg.setText(); } return; } Override public void keyPressed(KeyEvent key3) { int codekey3.getKeyCode(); if(code10){ String str editMsg.getText(); try { DataOutputStream dos new DataOutputStream(s.getOutputStream()); if(str.equals( ) || str.equals() || strnull){ JOptionPane.showMessageDialog(null, 输入不能为空请重新输入, 提示,JOptionPane.OK_OPTION); }else{ dos.writeUTF(str); } dos.flush(); editMsg.setText(); } catch (IOException e1) { e1.printStackTrace(); } } return; } }); keyTyped为按键敲击事件keyReleased为按键按下之后释放时的方法keyPressed为按钮按下之后释放之前的方法。 在keyPRessed方法中每按一次按键时先获取keyCode编码确定回车的ASCII码值再来判断是否发送消息。 思路是正确的但在此出现了一个问题每次回车发送消息之后会有一个自动换行的操作这也导致判断消息为空的代码失效。 解决办法在keyReleased的方法中同样再判断一次回车的ASCII码值再次清空输入框问题得到解决。 总结在键盘的监听中主要通过判断按键的执行顺序以及按键的ASCII值来采取对应操作。 转载于:https://www.cnblogs.com/Jery-9527/p/9749448.html