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

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

        }

最佳答案

我相信您希望在某个索引处选择一行?您可以通过 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/

相关文章:

java - 查询我的 JPA 提供程序 (Hibernate) 以获取实体的 <Id,Name> 集合

java - JNI 本地引用表汇总(512 个条目)

java - 如何通过单击按钮来销毁框架?

java - 如何关闭 BayeuxServer(嵌入 Jetty)中的 DBUG 级别日志记录?

java - 如何最大化 JFrame

java客户端服务器端socket编程实现问题

java - 制作可点击的 JXTable 或 JTable

java - JTable计算器

java - 更改自定义组件 JTable 的 LookAndFeel

java - URLConnection 生成错误的 IP 校验和