buttonlistening - 如何让它变得专业?

时间:2014-02-09 16:07:44

标签: events button user-interface listener

我想实现一个GUI元素,它就像一个按钮,对右/左点击和拖动做出不同反应。 说这个按钮是一个对象。谁负责从按钮调用鼠标事件的正确方法,以及如何在通常的编程语言中设计,例如Java中的AWT?

1 个答案:

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