我有一个包含许多票证的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;
}
}
答案 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;
}
}