2014-02-09 16 views
0

我想實現一個GUI元素,它的作用就像一個按鈕,它對右/左擊和拖動有不同的反應。 說這個按鈕是一個對象。誰負責從按鈕調用正確的mouseevents方法,以及它是如何用通常的編程語言來設計的,例如, Java中的AWT?buttonlistening - 如何使它專業?

回答

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