首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java jTable MouseListener不工作

Java jTable MouseListener不工作
EN

Stack Overflow用户
提问于 2014-08-14 09:48:38
回答 2查看 4K关注 0票数 0

我在jTable上对我的口香糖有问题。这是我的密码:

代码语言:javascript
运行
复制
 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告诉我:新MouseAdapter(){}类型中的方法MouseAdapter(){}从不在本地使用。

编辑:这是我的功能,除了jTable.addMouseListener一切都很好

代码语言:javascript
运行
复制
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);
    } 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-14 09:49:51

签名,签名

代码语言:javascript
运行
复制
public void mouseClicked(Event e){

应该是

代码语言:javascript
运行
复制
@Override
public void mouseClicked(MouseEvent e) {
票数 2
EN

Stack Overflow用户

发布于 2014-08-14 10:49:08

我不得不删除项目工作区中的文件:

  • .project
  • .classpath

和文件夹:

  • .settings

然后使用jre8和导入文件创建新的projekt。我的JRE系统库在project = JavaSE-1.7中运行良好。我必须删除函数中不必要的@Override。“我的MouseListener函数看起来像”Reimeus说。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25305042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档