突出显示JTable行中找到的数据

时间:2014-06-08 06:14:25

标签: java swing jtable filtering tablerowsorter

我想在找到数据时从JTable搜索数据,然后我想突出显示表格行。这段代码工作正常搜索记录,但我不知道我做了什么来突出显示行。

  String target = jTextField1.getText();
    for(int row = 0; row < jTable1.getRowCount(); row++)
    for(int col = 0; col < jTable1.getColumnCount(); col++)
        {
    String next = (String)jTable1.getValueAt(row, col);
        if(next.equals(target))
        {
            System.out.println("found");// here what change for highlight row.
        }
        }

3 个答案:

答案 0 :(得分:1)

答案取决于您对“突出显示”的想法

您可以使用JTable#addRowSelection使用默认选择

突出显示行

或者,您可以设置单元格渲染以通过附加查找应用其他突出显示支持,以确定是否应突出显示单元格/行

或者,您可以使用JTable的内置过滤功能来过滤掉不需要的内容

有关详细信息,请参阅How to use tables

或者,你可以使用SwingLabs,SwingX librRies的高亮支持

答案 1 :(得分:1)

我们可以通过自定义JLabel和TableCellRenderer实现这一目标。 下面的示例突出显示了JTable中找到的(已过滤的)行。行通过RowFilter进行过滤: http://www.logicbig.com/tutorials/core-java-tutorial/swing/jtable-row-filter-highlighting/

enter image description here

答案 2 :(得分:0)

else if(e.getSource()==field){
            int z;
            for(z = 0;z<table.getRowCount();z++){
                if(Integer.parseInt(field.getText()) == Integer.parseInt((String)table.getValueAt(z, 1))){
                    break;
                     }
            }
            table.setRowSelectionInterval(z, z);


        }

我有同样的问题,这就是我如何去做。