我有一个包含许多门票的 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;
}
}
最佳答案
我相信您希望在某个索引处选择一行?您可以通过 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;
}
}
关于Java jTable changeSelection 然后突出显示新的选定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504877/