Swing java-无法将MouseListener添加到JTable

Swing java-无法将MouseListener添加到JTable,swing,jtable,listener,Swing,Jtable,Listener,我只是说我的题目有问题。。。程序并没有进入我将侦听器添加到表中的那个部分。。。 我需要获取第一列(第0列)中选定行中的单元格值。 我的错在哪里 rezultatiTable = new JTable(data, columnNames) { public Class getColumnClass(int column) { for (int row = 0; row < getRowCount(); row++) {

我只是说我的题目有问题。。。程序并没有进入我将侦听器添加到表中的那个部分。。。 我需要获取第一列(第0列)中选定行中的单元格值。 我的错在哪里

rezultatiTable = new JTable(data, columnNames) {


        public Class getColumnClass(int column)  {

            for (int row = 0; row < getRowCount(); row++) {
                Object o = getValueAt(row, column);
                if (o != null) {
                    return o.getClass();
                }
            }
            return Object.class;
        }
    };

   System.out.println("Before Listener");

   rezultatiTable.addMouseListener(new MouseAdapter(){

           private void MouseClicked(final MouseEvent e) {
               System.out.println("IN listener");
                if (e.getClickCount() != 0)
                {
                  final JTable target = (JTable)e.getSource();
                  final int row = target.getSelectedRow();
                  final int column = 0;

                  final int value = (Integer) target.getValueAt(row, column);
            }
            }

    });
    System.out.println("OUT of listener");
rezultatiTable=新的JTable(数据、列名){
公共类getColumnClass(int列){
对于(int row=0;row
我得到输出: 在听众面前
在听众之外

德马西亚多·塔德(Aunque sea demasiado tarde),阿尤达尔(puede ayudar)是未来的选择者

鼠标指针指向抽象类对象,而不是抽象类对象的其他工具。如果你是一名国际法律工作者,那么你就需要一名国际法律工作者来实施这项法律

虽然为时已晚,但这可能对未来的读者有所帮助。 MouseAdapter是一个抽象类,不能实现抽象类的对象。必须创建从MouseAdapter扩展的内部类,重写所需的方法,并将此内部类的实现发送到.addMouseListener

例如:

//Code...

mycomponent.addMouseListener(new innerClass());


class innerClass extends MouseAdapter{

   @Override
   public void MouseClicked(MouseEvent e){
      //Your Code
   }

}

我自己解决了这个问题,但花了我一些时间:-/我刚刚使用了ListSelectionListener(),因此如果将来有人有类似的问题,请尝试此解决方案:)您可以回答并接受您自己的问题-这样做将有助于未来的读者找到它:-)请注意您的代码:您的MouseClicked方法不尊重Java命名约定,而且是私人的。这两个大的标志应该让您意识到它不能重写MouseAdapter类中的任何方法。始终将@Override注释添加到应该重写另一个方法的方法中。正确的签名是
public void mouseClicked(MouseEvent e)
@JBNizet good catch,没有看到它:-)