我想在找到数据时从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.
}
}
答案 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/
答案 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);
}
我有同样的问题,这就是我如何去做。