停止Swing中事件的默认行为 [英] Stopping default behavior of events in Swing
问题描述
<$ p $
我通过点击发送按钮调用一个方法中的下列代码,或者在一段代码中的消息文本字段中输入。 p> //在类ChatWindow
private void messageTextAreaKeyPressed(java.awt.event.KeyEvent evt){//由Netbeans GUI设计器创建的调用此方法的事件处理程序。
if(evt.getKeyCode()== java.awt.event.KeyEvent.VK_ENTER){
sendMessage();
}
}
public void sendMessage(){
String currentMessage = messageTextArea.getText();
addMessage(你,currentMessage);
app.sendMessage(currentMessage,1);
messageTextArea.setText();
}
最后一位代码将空白文本区域。但是,通过按Enter按钮发送消息而不是空,文本框包含换行符。
我的猜测是,在我的事件处理程序运行后,那么正在添加换行符。如何停止添加换行符?
尝试添加 evt.consume()
code> sendMessage()
private void messageTextAreaKeyPressed(java.awt.event.KeyEvent evt){
if(evt.getKeyCode()== java.awt.event.KeyEvent.VK_ENTER){
sendMessage();
evt.consume();
}
}
I have the following bit of code in a method called by clicking the send button, or pressing enter in the message text field in a piece of code.
// In class ChatWindow
private void messageTextAreaKeyPressed(java.awt.event.KeyEvent evt) { // Event handler created by Netbeans GUI designer to call this method.
if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
sendMessage();
}
}
public void sendMessage() {
String currentMessage = messageTextArea.getText();
addMessage("You", currentMessage);
app.sendMessage(currentMessage, 1);
messageTextArea.setText("");
}
The last bit of code blanks the text area. However, after a message is sent by pressing the enter button, rather than being empty, the text box contains a newline.
My guess is that after my event handler runs, THEN the newline character is being added. How to I stop the newline being added?
try adding evt.consume()
after your call to sendMessage()
private void messageTextAreaKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
sendMessage();
evt.consume();
}
}
这篇关于停止Swing中事件的默认行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!