作者PeterKiller (Peter)
看板java
标题[问题] 请教JEditionPane 以及 KeyListener
时间Tue Jan 5 15:27:31 2010
因为最近在研究关於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
1F:→ tkcn:用 evt.getModifiers() 去判断有没有按下 shift 吧 01/05 16:10
2F:→ PeterKiller:THANKS 01/05 17:24