作者seruze (seruze)
看板java
标题[问题] 请教 JEditorPane 及 Listener的问题
时间Wed Jun 11 14:21:29 2008
我使用的环境是 netbeans 6~
想做一个类似msn的连线对话小程序.
由於使用 jTextArea 我不会设定他的scroll,很奇怪
但使用 jEditorPane ,同样的设定就可以控制 scroll..
所以使用了 jEditorPane!
现在有问题的地方是 .
在msn的对话中,自已的输入方块.
在没有任何文字时,按 enter ,是不会有任何动作的.
所以我把他设成
jEditorPane1.setText("");
那麽该把这一行指令放在哪呢?
首先我试着放在
public void keyReleased( KeyEvent e )
{
jEditorPane1.setText("");
}
结果很明显,他会换行.
不断的换行,直到我放开按键後才清除~这不是我要的,ok那换一个.
接着我放在
public void keypressed( KeyEvent e )
{
jEditorPane.setText("");
}
奇怪的事发生了.
不论我怎麽按,他不会像上一种方法一样不断跳行.
但他也不会回到原点= =
他会....在第二行..
感觉就像是 :已经设为 (""),接着跳一行.
最後,我把他放在
public void keyTyped( KeyEvent e )
{
jEditorPane.setText("");
}
可以了,不管怎麽按,他都会回到原点..
於是我加入了我的条件句.
public void keyTyped( KeyEvent e )
{
if( e.getKeyCode() == KeyEvent.VK_ENTER ) // 如果按的是 enter 就清除!
{
jEditorPane.setText("");
}
}
他变成....什麽都不做..
请问为什麽会这样呢?
是我的if 判断用法错了吗?该怎麽判断才对呢?
可是我将同样的判断句放入 keyPressed()或是 keyReleased()中都可以正常判断.
怎麽会这样呢?
而,为什麽放在 keyPressed() 中,会往下跳一行呢?
希望大大们赐教~谢谢了~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.243.211.177