如果我单击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);
}
}
});
答案 0 :(得分:2)
(不是答案,我会谈论简单的方法)
将ListSelectionMode
更改为SINGLE_....
,然后只能选择一行,否则您必须在array of selected rows
内循环
测试if (row > -1)
==没有选择行,如果通过则可以
更快地发布SSCCE,简短,可运行,可编译,以及JTable的硬编码值
答案 1 :(得分:1)
我对您的代码进行了一些更改,可能会有所帮助。
.(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));
}
}
}
});