如何将JButton绑定到Enter键

时间:2016-12-07 20:01:23

标签: java jbutton

我正在尝试将“发送消息”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();
    }
}

1 个答案:

答案 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