我想实现一个GUI元素,它就像一个按钮,对右/左点击和拖动做出不同反应。 说这个按钮是一个对象。谁负责从按钮调用鼠标事件的正确方法,以及如何在通常的编程语言中设计,例如Java中的AWT?
答案 0 :(得分:0)
我并不认为这是'专业方式',但我就是这样做的。 使用延迟初始化和匿名类。
private JButton btnSpecialbutton;
private JButton getBtnSpecialbutton() {
if (btnSpecialbutton == null) {
btnSpecialbutton = new JButton("SpecialButton");
btnSpecialbutton.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
System.out.println("Dragged");
}
});
btnSpecialbutton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1)
{
System.out.println("Left Mouse Button");
}
else if(e.getButton() == MouseEvent.BUTTON3)
{
System.out.println("Right Mouse Button");
}
}
});
}
return btnSpecialbutton;
}