[問題] 請教JEditionPane 以及 KeyListener

看板java作者 (Peter)時間16年前 (2010/01/05 15:27), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/2 (看更多)
因為最近在研究關於GUI方面的東西 就想說寫個可以打字的框框做練習 但是我想像msn那樣按下enter 可以送出文字 按下shift + enter 可以在textArea內 換行 剛剛爬過板上有關於Listner的文章 有人也問過類似的問題 關於enter送出文字的部分 private void Submit(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if ( evt.getKeyChar() == '\n'){ jTextArea1.setText(jTextArea1.getText()+jEditorPane1.getText() ) ; c.sendMsg( jEditorPane1.getText() ); jEditorPane1.setText(null); } 可以成功偵測 並且改掉 原本keytyped enter的功能(換行) 但當我要做shift + enter 會在textArea 內換行的部分時 一開始我想應該是用getKeyChar()做吧 但是看了getKeyChar()的API後 上面寫 假如沒有對應的character 會傳出CHAR_UNDEFINED SHIFT 應該沒有對應的character 所以好像也不太行 最後我用了 keypress event 當使用者同時按下shift+enter時就讓他一直在text area內換行 private void ChangLine(java.awt.event.KeyEvent evt) { // TODO add your handling code here: System.out.printf ("out"); if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_SHIFT && evt.getKeyChar() == '\n' ){ jEditorPane1.setText("\n"+jEditorPane1.getText()+"\n"); System.out.printf("in"); } } 以上是程式碼 但是我實際測的時候 在if裡面的in卻不能print出來 我自己在寫這個if的時候也認為怪怪的好像不能同時=SHIFT又=ENTER 請問有什麼方法可以同時偵測到使用者按下shift 跟 enter嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.208.35

01/05 16:10, , 1F
用 evt.getModifiers() 去判斷有沒有按下 shift 吧
01/05 16:10, 1F

01/05 17:24, , 2F
THANKS
01/05 17:24, 2F
文章代碼(AID): #1BGkdcuE (java)
文章代碼(AID): #1BGkdcuE (java)