【问题标题】:Highlight found data in JTable row突出显示 JTable 行中找到的数据
【发布时间】:2014-07-29 00:05:24
【问题描述】:

我想在找到数据时从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.
        }
        }

【问题讨论】:

标签: java swing jtable filtering tablerowsorter


【解决方案1】:

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

您可以使用JTable#addRowSelection 使用默认选择突出显示一行

或者,您可以设置单元格渲染以通过额外的查找来应用额外的突出显示支持,以确定是否应该突出显示单元格/行

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

详情请见How to use tables

或者,您可以使用来自 SwingLabs、SwingX 库的突出显示支持

【讨论】:

    【解决方案2】:
    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);
    
    
            }
    

    我遇到了同样的问题,我就是这样解决的。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-01-27
        • 1970-01-01
        • 2012-08-06
        • 2018-11-06
        • 2011-10-03
        • 1970-01-01
        • 2013-03-07
        • 2012-03-24
        相关资源
        最近更新 更多