日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java swing中的keyListener使用事例

發布時間:2023/11/29 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java swing中的keyListener使用事例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學習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("") || str==null){
        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(code==10){
      editMsg.setText("");
    }
    return;
  }

  @Override
  public void keyPressed(KeyEvent key3) {
    int code=key3.getKeyCode();
      if(code==10){
        String str = editMsg.getText();
      try {
          DataOutputStream dos = new DataOutputStream(s.getOutputStream());
          if(str.equals(" ") || str.equals("") || str==null){
            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

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java swing中的keyListener使用事例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。