繁体   English   中英

单击JTable中的一行时出现NullPointerException

[英]NullPointerException in Clicking a row in JTable

如果我在Jtable中单击一个空的第8列,我想激活一个按钮。 但是我得到这个:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at records$1.valueChanged(records.java:57)

这是我的代码:

tb_records.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent event) {

                int row = tb_records.getSelectedRow();
                DefaultTableModel model = (DefaultTableModel)tb_records.getModel();
                String hehe = (String) model.getValueAt(row, 7);

                if(!hehe.equals("")) {
                    b_extend.setEnabled(false);
                }
                else {
                    b_extend.setEnabled(true);
                }
            }
        });

(不是答案,我只是在谈论简单的方法)

  1. ListSelectionMode更改为SINGLE_.... ,则只能选择一行,否则必须在array of selected rows内循环

  2. 测试if (row > -1) ==未选择任何行,如果通过,则可以

  3. 为了更好地提供帮助,请尽快发布SSCCE ,short,可运行,可编译的JTable的硬编码值

我对您的代码进行了一些更改,可能会有所帮助。

.(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent e) {

            if (! e.getValueIsAdjusting() ) {
              ListSelectionModel d = (ListSelectionModel)e.getSource();
              if(d.getLeadSelectionIndex() != -1){
                   String hehe = (String) model.getValueAt(d.getLeadSelectionIndex(), 7);
                   b_extend.setEnabled("".equals(hehe));
              }
            }

            }
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM