我在通过单击发送按钮调用的方法中有以下代码,或者在一段代码中按消息文本字段中的Enter键.
// 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("");
}
Run Code Online (Sandbox Code Playgroud)
最后一段代码使文本区域空白.但是,在按Enter按钮发送消息后,文本框包含换行符,而不是为空.
我的猜测是,在我的事件处理程序运行之后,然后添加了换行符.如何停止添加换行符?
我有一个JFrame和,里面JFrame有两个JPanels.当我按下一个键时,他们都必须听这个关键事件并采取行动.我想拍摄所有的键盘事件,并将它们传递给两个JPanel.你知道怎么做吗?
编辑:因为他们必须做不同的事情,我需要两个不同的听众,抱歉没有具体.
Edit2:我制作了一个简单的代码来向您展示问题.当我按下向上键时,JPanel显示的两个必须改变它们的字符串; 在这段代码中,其中只有一个实际上有所反应
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
/**
*
* @author antonioruffolo
*/
public class TwoPanelsTest extends JFrame {
public TwoPanelsTest() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setSize(800, 600);
PanelTest panelTest1= new PanelTest();
PanelTest panelTest2= new PanelTest();
GridBagLayout layout= new GridBagLayout();
this.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
c.ipadx …Run Code Online (Sandbox Code Playgroud)