[問題] 請教JEditionPane 以及 KeyListener
因為最近在研究關於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
01/05 16:10, 1F
→
01/05 17:24, , 2F
01/05 17:24, 2F
討論串 (同標題文章)