Java 鼠标侦听器实现
我正在学习Java并第一次尝试实现MouseListener。我已经阅读了java文档 但是我的代码不起作用,因为当我按下按钮时什么也没有发生。这是一个带有按下和释放事件的jbutton。有人能解释一下我哪里出错了吗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)
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()可能会起作用。你可以尝试一下。”这就是我能给你的,希望它有所帮助。事实上我想我明白了。谢谢