2013-01-18 84 views
-4

我不想再創建JLabel對象。我想用addMouseListener,因爲這種方式太實際了。但是,如果我使用這個鼠標監聽器不起作用。爲什麼?Java MouseListener問題

工作代碼:

JLabel lb = new JLabel("Label 1"); 
lb.addMouseListener(new MouseAdapter() { 
     public void mouseClicked(MouseEvent e) { 
      if(e.isShiftDown()){ 
       System.out.println("Click"); 
      } 
     } 
    }); 

不起作用:

add(new JLabel("Label1").addMouseListener(new MouseAdapter() { 
     public void mouseClicked(MouseEvent e) { 
      if(e.isShiftDown()){ 
       System.out.println("Click triggered"); 
      } 
     } 
    })); 

回答

2
addMouseListener(...) 

返回void因此,你不能使用結果作爲另一方法調用的參數。

+1

對於很多方法來說,如果他們會返回this而不是void。但是設計決定有所不同。 – MrSmith42