Java jTable changeSelection,然后突出显示新选定的行

Java jTable changeSelection,然后突出显示新选定的行,java,swing,jtable,Java,Swing,Jtable,我有一个包含许多票证的jTable,我想让用户可以选择查找他正在查找的票证,并突出显示该票证,就像单击票证一样 如下图所示。如何突出显示用户选择的票证?不更改背景色,但使其看起来与您按下的背景色相同 for (int tableIndex = 0; tableIndex < ticketTable.getRowCount(); tableIndex++) { if (ticketTableModel.getValueAt(tableIndex, 0).toStr

我有一个包含许多票证的jTable,我想让用户可以选择查找他正在查找的票证,并突出显示该票证,就像单击票证一样

如下图所示。如何突出显示用户选择的票证?不更改背景色,但使其看起来与您按下的背景色相同

 for (int tableIndex = 0; tableIndex < ticketTable.getRowCount(); tableIndex++) {

            if (ticketTableModel.getValueAt(tableIndex, 0).toString().equals(jTextField1.getText()) || ticketTableModel.getValueAt(tableIndex, 1).toString().equals(jTextField1.getText())) {
                ticketIndex = tableIndex;
                 ticketTable.requestFocus();

                ticketTable.changeSelection(drawIndex, 0, error, error);

                break;
            }

        }

for(int-tableIndex=0;tableIndex
我相信您是想在某个索引处选择一行?您可以通过将选择间隔设置为。您可以通过调用获取选择模型

应用于您的示例,并进行了一些更正:

String txt = jTextField1.getText();
for(int tableIndex = 0; tableIndex < ticketTable.getRowCount(); tableIndex++) {
    int rowModelId = ticketTable.convertRowIndexToModel(tableIndex);
    if(ticketTableModel.getValueAt(rowModelId,0).equals(txt) || ticketTableModel.getValueAt(rowModelId,1).equals(txt) {
        ticketTable.scrollRectToVisible(ticketTable.getCellRect(tableIndex,0));
        ticketTable.getSelectionModel().setSelectionInterval(tableIndex,tableIndex);
        break;
    }
}
String txt=jTextField1.getText();
对于(int tableIndex=0;tableIndexticketTable.scrollRectToVisible(ticketTable.getCellRect(tableIndex,0));
ticketTable.getSelectionModel().setSelectionInterval(tableIndex,tableIndex);
打破
}
}

1)“我希望用户……我希望您提出一个问题(而不是简单地概述需求)。问题是什么?2) 若要更快地获得更好的帮助,请发布or。另请参阅(我认为)什么是更好的总体方法。这是我的意思的一个简单例子。对不起,我要求解决这个问题的方式很复杂。你是对的。过滤非常有用。但我认为这不是我要寻找的解决方案。changeSelection()方法应该是要使用的方法。尽管我质疑为什么要使用“drawIndex”,因为循环使用“tableIndex”?ticketTable.scrollRectToVisible(tbl.getCellRect(tableIndex,0));在这一行。什么是tbl?可售票?我把你的代码改成这个,它正是我想要的。。非常感谢。scrollRectToVisible(ticketTable.getCellRect(tableIndex,0,true))@manoskammas如果要选择的行在视图中不可见,则存在scrollRectToVisible方法。