Java jTable鼠标侦听器不工作

Java jTable鼠标侦听器不工作,java,swing,jtable,mouselistener,Java,Swing,Jtable,Mouselistener,我的鼠标听筒在jTable上有问题。 这是我的代码: final JTable jTable1 = new JTable(tablemodel); JScrollPane scroll = new JScrollPane(jTable1); jTable1.addMouseListener(new MouseAdapter(){ public void mouseClicked(Event e){ Sys

我的鼠标听筒在jTable上有问题。 这是我的代码:

 final JTable jTable1 = new JTable(tablemodel);
        JScrollPane scroll = new JScrollPane(jTable1);

        jTable1.addMouseListener(new MouseAdapter(){
            public void mouseClicked(Event e){
                System.out.println("clicekd on table");
            }
        });
但是,当我单击sysout中的单元格数据时,该代码不起作用。 Eclipse告诉我:new
MouseAdapter(){}
类型中的方法
mouseClicked(Event)
从未在本地使用

编辑: 这是我的函数,除了
jTable.addMouseListener

public void categoryShow() {
        // TODO Auto-generated method stub
        appListener.getCategory();
        List<Category> people = model.getPeople();

        DefaultTableModel tablemodel;

        tablemodel = new DefaultTableModel();
        final JTable jTable1 = new JTable(tablemodel);
        JScrollPane scroll = new JScrollPane(jTable1);

        jTable1.addMouseListener(new MouseAdapter(){
            @Override
            public void mouseClicked(MouseEvent e){
                System.out.println("clicekd on table");
            }
        });

        tablemodel.addColumn("ID");
        tablemodel.addColumn("Nazwa");

        for (Category person : people) {

            tablemodel.addRow(new Object[]{person.getId(),person.getName()});

        }
        JPanel controls = new JPanel(new BorderLayout(5,5));
        JPanel buttons = new JPanel(new GridLayout(0,1,4,4));

        JButton deletebutton  = new JButton("Usuń");
        JButton newrow = new JButton("Dodaj");
        JButton print = new JButton("Drukuj");

        print.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                try{
                    jTable1.print();
                }catch (PrinterException pe){
                    System.err.println("Blad przy drukowaniu");
                }   
            }           
        }); 
        jTable1.getModel().addTableModelListener(new TableModelListener(){
            public void tableChanged(TableModelEvent e){
                // TODO Auto-generated method stub
                    if(jTable1.getCellEditor() != null){
                    int col = jTable1.getSelectedColumn();
                    String columnname = jTable1.getColumnName(col); 
                    System.out.println(jTable1.getSelectedColumn());
                    System.out.println("--" + columnname);  
                    System.out.println(jTable1.getValueAt(jTable1.getSelectedRow(),jTable1.getSelectedColumn())); //nowa wartosc
                    System.out.println(jTable1.getValueAt(jTable1.getSelectedRow(), 0)); //id
                }
            }
        });
        newrow.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e){

                final JFrame bankTeller = new JFrame("Dodaj nową kategorie");
                bankTeller.setSize(500, 280);
                bankTeller.setLocationRelativeTo(null);
                bankTeller.setResizable(false);
                bankTeller.setLayout(new GridBagLayout());

                bankTeller.setBackground(Color.gray);
                //bankTeller.getContentPane().add(everything, BorderLayout.CENTER);

                GridBagConstraints c = new GridBagConstraints();

                JPanel acctInfo = new JPanel(new GridBagLayout());
                c.gridx = 0;
                c.gridy = 0;
                c.gridwidth = 2;
                c.gridheight = 1;
                c.insets = new Insets(5,5,5,5);
                bankTeller.add(acctInfo, c);
                c.gridwidth = 1;

                JLabel custNameLbl = new JLabel("Nazwa kategorii");
                c.gridx = 0;
                c.gridy = 0;
                c.insets = new Insets(0,0,0,0);
                acctInfo.add(custNameLbl, c);
                c.weightx=1.;

                c.fill=GridBagConstraints.HORIZONTAL;
                custNameTxt = new JTextField("",1000);
                c.gridx = 1;
                c.gridy = 0;
                c.insets = new Insets(5,5,5,5);
                acctInfo.add(custNameTxt,c);

                closeBtn = new JButton("Anuluj");
                c.gridx = 0;
                c.gridy = 3;
                c.insets = new Insets(5,5,5,5);
                acctInfo.add(closeBtn,c);

                savingsBtn = new JButton("Dodaj");
                c.gridx = 1;
                c.gridy = 3;
                c.insets = new Insets(5,5,5,5);
                acctInfo.add(savingsBtn,c);

                bankTeller.setVisible(true);

               closeBtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent e){
                       bankTeller.dispose();
                   }
               }); 

               savingsBtn.addActionListener(new ActionListener(){

               public void actionPerformed(ActionEvent e){

                       String name = custNameTxt.getText();    
                       if(!name.isEmpty()){
                           fireCategoryEvent(new CreateCategoryEvent(name));
                       }else{
                        //   showMessageDialog(this, "Uzupełnij pole nazwa", "Error", JOptionPane.WARNING_MESSAGE);
                       }   
                } 
              });
            }
        });
        deletebutton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                int selRow = (Integer) jTable1.getValueAt(jTable1.getSelectedRow(), 0);

                if(selRow >= 0) {
                    System.out.println(selRow);
                }
            }
        });     

        buttons.add(newrow);
        buttons.add(deletebutton);
        buttons.add(print);
        buttons.setBorder(new TitledBorder("Zarządzaj"));

        controls.add(buttons,BorderLayout.NORTH);

        card1.add(scroll);
        card1.add(controls);
    } 
public void categoryShow(){
//TODO自动生成的方法存根
appListener.getCategory();
List people=model.getPeople();
DefaultTableModel表格模型;
tablemodel=新的DefaultTableModel();
最终JTable jTable1=新JTable(表格模型);
JScrollPane scroll=新的JScrollPane(jTable1);
jTable1.addMouseListener(新的MouseAdapter(){
@凌驾
公共无效mouseClicked(MouseEvent e){
System.out.println(“表上的clicekd”);
}
});
tablemodel.addColumn(“ID”);
tablemodel.addColumn(“Nazwa”);
适用于(类别人员:人){
tablemodel.addRow(新对象[]{person.getId(),person.getName()});
}
JPanel控件=新JPanel(新边界布局(5,5));
JPanel按钮=新JPanel(新网格布局(0,1,4,4));
JButton deletebutton=新JButton(“通常”);
JButton newrow=新JButton(“Dodaj”);
JButton print=新JButton(“Drukuj”);
print.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件arg0){
//TODO自动生成的方法存根
试一试{
jTable1.print();
}捕获(打印异常pe){
系统错误打印(“Blad przy drukowaniu”);
}   
}           
}); 
jTable1.getModel().addTableModelListener(新的TableModelListener()){
公共作废表已更改(TableModelEvent e){
//TODO自动生成的方法存根
if(jTable1.getCellEditor()!=null){
int col=jTable1.getSelectedColumn();
字符串columnname=jTable1.getColumnName(col);
System.out.println(jTable1.getSelectedColumn());
System.out.println(“--”+列名称);
System.out.println(jTable1.getValueAt(jTable1.getSelectedRow(),jTable1.getSelectedColumn());//nowa-wartosc
System.out.println(jTable1.getValueAt(jTable1.getSelectedRow(),0));//id
}
}
});
addActionListener(newActionListener()){
已执行的公共无效操作(操作事件e){
最终JFrame bankTeller=新JFrame(“Dodaj nowąkategorie”);
银行出纳员。设置大小(500280);
bankTeller.setLocationRelativeTo(空);
bankTeller.SetResizeable(假);
setLayout(新的GridBagLayout());
银行出纳员。背景(颜色。灰色);
//bankTeller.getContentPane().add(所有内容,BorderLayout.CENTER);
GridBagConstraints c=新的GridBagConstraints();
JPanel acctInfo=newjpanel(newgridbaglayout());
c、 gridx=0;
c、 gridy=0;
c、 网格宽度=2;
c、 网格高度=1;
c、 插图=新插图(5,5,5,5);
银行出纳添加(账户信息,c);
c、 网格宽度=1;
JLabel custNameLbl=新JLabel(“Nazwa kategorii”);
c、 gridx=0;
c、 gridy=0;
c、 插图=新插图(0,0,0,0);
账户信息添加(custNameLbl,c);
c、 权重x=1。;
c、 填充=GridBagConstraints.HORIZONTAL;
custNameTxt=新的JTextField(“,1000);
c、 gridx=1;
c、 gridy=0;
c、 插图=新插图(5,5,5,5);
acctInfo.add(custNameTxt,c);
closeBtn=新的JButton(“Anuluj”);
c、 gridx=0;
c、 gridy=3;
c、 插图=新插图(5,5,5,5);
账户信息添加(关闭BTN,c);
savingsBtn=新的JButton(“Dodaj”);
c、 gridx=1;
c、 gridy=3;
c、 插图=新插图(5,5,5,5);
账户信息添加(储蓄账户,c);
bankTeller.setVisible(true);
closeBtn.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
bankTeller.dispose();
}
}); 
savingsBtn.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
String name=custNameTxt.getText();
如果(!name.isEmpty()){
fireCategoryEvent(新创建的CategoryEvent(名称));
}否则{
//showMessageDialog(这是“Uzupełnij pole nazwa”,“错误”,JOptionPane.WARNING_消息);
}   
} 
});
}
});
deletebutton.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
int selRow=(整数)jTable1.getValueAt(jTable1.getSelectedRow(),0);
如果(selRow>=0){
系统输出打印项次(selRow);
}
}
});     
按钮。添加(新行);
按钮。添加(删除按钮);
按钮。添加(打印);
纽扣。收尾顺序(新标题边框(“Zarządzaj”);
控件。添加(按钮,BorderLayout.NORTH);
卡片1.添加(滚动);
card1.添加(控件);
} 
的签名

public void mouseClicked(Event e){
应该是

@Override
public void mouseClicked(MouseEvent e) {

我必须删除项目工作区中的文件: