Java jTable changeSelection然后突出显示新的Selected Row

时间:2016-02-19 12:02:43

标签: java swing jtable

我有一个包含许多票证的jTable,我想让用户选择查找他要查找的票证,并以与点击票证时相同的方式突出显示。

因此如下图所示。有关如何突出显示用户选择的故障单的任何想法?不要改变背景颜色,但要使它看起来像你按下它一样。

process picture

 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;
            }

        }

1 个答案:

答案 0 :(得分:1)

我相信您希望在某个指数中选择一行?您可以通过ListSelectionModel.setSelectionInterval()设置选择间隔来实现。您可以通过调用JTable.getSelectionModel()来获取选择模型。

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

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;
    }
}