java - JTable 中的复选框始终返回 false,尽管已选中

标签 java swing checkbox jtable

我在 JTable 中使用复选框,其本身是 JPanel 的一部分。最初我使用的是 JOptionPane,单击“确定”按钮后我获得了值,但现在我在 JFrame 中添加了 JPanel。当我单击右上角的 X 符号时,它不会检索单击的复选框的值,但能够获取其他列的值。代码片段如下:

DefaultTableModel dtm = new DefaultTableModel(rowData, columnNames)
        {
        };
for (int i = 0; i < records.size(); i++)
            {
               // System.out.println(records.get(i));
                singleRecord = records.get(i).toString().split("%");
                Pages = singleRecord[0].toString();
                BKey= singleRecord[1].toString();
                Title = singleRecord[2].toString();
                Author = singleRecord[3].toString();
                TimeStamp = singleRecord[4].toString();
                dtm.addRow(new Object[] { Boolean.FALSE ,Pages,BKey,Title,Author,TimeStamp});

        } 

table = new javax.swing.JTable(dtm)
        {
            public boolean isCellEditable(int row,int column)
            {
                /*if(column == 0)
                    return true;
                else
                    return false;
                 * 
                 */
                return(column < 2);
            }
        };

for (int i = 0; i < table.getRowCount(); i++)
            {
                 System.out.println(table.getValueAt(i,1).toString());
                 boolean isChecked = (Boolean) table.getValueAt(i,0);//always return false
                 if (isChecked)
                 {
                     System.out.println("checked ");
                   Ids+=table.getValueAt(i,2).toString()+"%";
                 }
            }

最佳答案

  1. 遵循 Java 变量命名标准。变量名称不应以大写字符开头。你们中有些人的名字是正确的。其他人则不然。保持一致!!!

  2. 如果您总是得到 false,那么可能是因为当您单击单元格时编辑器没有将值更新为 Boolean.TRUE。您不仅需要重写 isCellEditable(...) 方法来确定哪些单元格可编辑,还需要重写 getColumnClass(...) 方法来确定哪些单元格可编辑。返回单元格的类(在本例中为 Boolean.class),以便表格可以使用适当的渲染器和编辑器。

阅读 Swing 教程中关于 How to Use Tables 的部分了解更多信息和工作示例。

关于java - JTable 中的复选框始终返回 false,尽管已选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844884/

相关文章:

java 如何将String转换为Int

java - 为什么不使用这种更简单的 Java 图形实现?

php - 以 PHP 形式发送复选框值

java - 光轮 L & F : Setting different background colors of a Check-Boxes in a CheckBox List

java - 如何使用对象和 getter 从其他类检索值?

java - 将测试文件导入 JUnit 的简单方法

java - 编写一次代码并在我想再次运行它时添加引用?

html - 是否可以将图像放入输入类型 ="check box"?

java - 显示小数时出现问题

java - 如何调整JFrame和JPanel中的大小?