2013-10-28 54 views
1

我的问题是当我将一个MouseListener添加到JTable时,没有结果。java JTable忽略鼠标事件

示例: 类OnlineList扩展了JTable。

// In constructor: 
public OnlineList() { 

    this.addMouseListener(new MouseAdapter() { 

     @Override 
     public void mouseClicked(MouseEvent e) { 

      System.out.println("Check mouse click"); 
     } 
    }); 
} 

没有像输出“检查鼠标点击” 我认为,事件侦听器被忽略。

+1

谁是'this',你确定'this'是'Table'? – Sage

+1

为什么不是'ListSelectionListener'? – trashgod

回答

0

我试图做你想做的和所有正常工作。这里是我的代码:

public static void main(String... s) { 
    JFrame test = new JFrame("Test"); 
    JTable t = new JTable(new Object[][]{{1,2},{2,3}},new Object[]{"a","b"}); 
    t.addMouseListener(getMouseListener()); 
    test.add(new JScrollPane(t)); 
    test.setVisible(true); 
    test.pack(); 
} 

private static MouseListener getMouseListener() { 
    return new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      System.out.println("test"); 
     } 
    }; 
} 

我建议你来验证对象在你的代码,是不是真的你的桌子吗?