Java 鼠标侦听器实现

Java 鼠标侦听器实现,java,jbutton,mouselistener,Java,Jbutton,Mouselistener,我正在学习Java并第一次尝试实现MouseListener。我已经阅读了java文档 但是我的代码不起作用,因为当我按下按钮时什么也没有发生。这是一个带有按下和释放事件的jbutton。有人能解释一下我哪里出错了吗 JButton upButton_1 = new JButton("Up"); upButton_1.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent pevt)

我正在学习Java并第一次尝试实现MouseListener。我已经阅读了java文档 但是我的代码不起作用,因为当我按下按钮时什么也没有发生。这是一个带有按下和释放事件的jbutton。有人能解释一下我哪里出错了吗

JButton upButton_1 = new JButton("Up");
    upButton_1.addMouseListener(new MouseAdapter(){
        public void mousePressed(MouseEvent pevt) {
            upButtonPressPerformed(pevt);
        }
        public void mouseReleased(MouseEvent revt) {
            upButtonReleasePerformed(revt);
        }

        public synchronized void upButtonPressPerformed(
                MouseEvent pevt) {
            resultsTextArea.setText("Up Button Activated, String: " + downString);


                try{
                    //See Above comments for sending ASCII String
                    byte[] bytes = DatatypeConverter.parseHexBinary(upString);


                    TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
                            twoWaySerCom.serialPort.getOutputStream());

                sw.out.write(bytes);

            } catch (IOException e) {

                e.printStackTrace();
            }
        }
        public synchronized void upButtonReleasePerformed(
        MouseEvent revt) {
        resultsTextArea.setText("Up Button released, String: " + downString);


            try{
                //See Above comments for sending ASCII String
                byte[] bytes = DatatypeConverter.parseHexBinary(upString);


                TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
                        twoWaySerCom.serialPort.getOutputStream());

            sw.out.write(bytes);

        } catch (IOException e) {

            e.printStackTrace();
        }
    }
    });

如果你想使用按钮,ActionListener就是你想要的

JButton button = new JButton("SomeButton");
button.addActionListener(this);

void ActionPerformed(ActionEvent e) {
    if(e.getSource() == button) {
        // do whatever you want if button is clicked
    }
}
也可以使用匿名内部类:

button.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) {          
        //do whatever you want
    } 
});

//or the Java8 version
button.addActionListener((e) -> {
    //do whatever you want
});
Whit MouseListener您可以收听以下活动: 鼠标滑动,鼠标滑动,鼠标滑动,鼠标滑动,鼠标滑动,鼠标滑动。
您可以使用这些按钮,但对于按钮单击,更符合逻辑的是听您的按钮,而不是鼠标

ActionListener是您希望使用按钮的工具

JButton button = new JButton("SomeButton");
button.addActionListener(this);

void ActionPerformed(ActionEvent e) {
    if(e.getSource() == button) {
        // do whatever you want if button is clicked
    }
}
也可以使用匿名内部类:

button.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) {          
        //do whatever you want
    } 
});

//or the Java8 version
button.addActionListener((e) -> {
    //do whatever you want
});
Whit MouseListener您可以收听以下活动: 鼠标滑动,鼠标滑动,鼠标滑动,鼠标滑动,鼠标滑动,鼠标滑动。
您可以使用这些按钮,但对于按钮单击,更符合逻辑的是听您的按钮,而不是鼠标

a)解释你所说的“不起作用”是什么意思。b) 按钮上的鼠标听筒?我不知道这是否有什么原因不起作用,但这没有多大意义。我想先在别的东西上试试(比如JPanel或JLabel),我想在按下按钮时发送一个字符串,然后在释放按钮时发送另一个字符串。在我按下按钮的那一刻,什么都没有发生。你会推荐什么作为替代方案?a)解释你所说的“不工作”是什么意思。b) 按钮上的鼠标听筒?我不知道这是否有什么原因不起作用,但这没有多大意义。我想先在别的东西上试试(比如JPanel或JLabel),我想在按下按钮时发送一个字符串,然后在释放按钮时发送另一个字符串。在我按下按钮的那一刻,什么也没发生。你能推荐一个替代方案吗?嗨。谢谢你的回复。事实上,这是我以前吃过的。但是,按钮按下和按钮释放是否可能有不同的行为?像MousePress和Mouse Release?@Display Name“我感觉将ChangeListener与调用按钮相结合。isSelected()可能会起作用。你可以尝试一下。”这就是我能给你的,希望它有所帮助。事实上我想我明白了。谢谢你好谢谢你的回复。事实上,这是我以前吃过的。但是,按钮按下和按钮释放是否可能有不同的行为?像MousePress和Mouse Release?@Display Name“我感觉将ChangeListener与调用按钮相结合。isSelected()可能会起作用。你可以尝试一下。”这就是我能给你的,希望它有所帮助。事实上我想我明白了。谢谢