我正在尝试将“发送消息”JButton绑定到回车键,但它无效。
实例化:
sendMessage = new JButton("Send Message");
sendMessage.addActionListener(new sendMessageButtonListener());
听众:
class sendMessageButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if (messageBox.getText().length() < 1) {
} else if (messageBox.getText().equals(".clear")) {
chatBox.setText("Cleared all messages\n");
messageBox.setText("");
} else {
chatBox.append("<" + username + ">: " + messageBox.getText()
+ "\n");
messageBox.setText("");
}
messageBox.requestFocusInWindow();
}
}
答案 0 :(得分:0)
你必须编写一个KeyListener来监听enterkey。 ActionListener无法侦听按键事件。
我建议您将ActionListener中的行提取到方法中,然后在KeyListener中调用此方法。
它看起来像这样:
sendMessage .addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 10) {
yourFunction();
}
}
});
我发现的另一个解决方案如下:您可以将按钮设置为窗格中的默认按钮,它是嵌入的:
pnae.setDefaultButton(sendMessage);
当按下enter时,这也会触发你的ActionListener