java - 根据 Jtextfield 输入从 Jtable 中选择一行

标签 java swing jtable jtextfield

我有一个 JTable 以这种格式显示内容:

Part Number    Quantity   Price
SD1131            7       1,000
SD6534            6       2,000

在同一帧上我有一个 JTextfield(txtNo)。我需要它,以便当用户在 JTextfield 上键入零件编号时,会在 JTable 上选择相应的记录。到目前为止,我只能根据行号选择记录,如下所示:

txtNo.addFocusListener(new FocusAdapter() {
            public void focusLost(FocusEvent e) {

                int index1 = 0;
                int index2 = 0;
                try {
                    index1 = Integer.valueOf(txtNo.getText());
                    tbStore.setRowSelectionInterval(index2, index1);
                } catch (Exception ae) {
                    ae.printStackTrace();
                }
            }
        });

如何实现相同的方法来根据 JTextfield 的输入选择 JTable 行?

最佳答案

您需要在表中查找部件号与文本字段中输入的部件号相同的项目。采取的步骤:

  • 阅读文本字段的内容
  • TableModel中搜索匹配元素的索引
  • 使用 convertRowIndexToView 方法将该索引转换为 JTable 中相应的行索引(考虑排序、过滤等)
  • 使用 JTablesetRowSelectionInterval 方法选择该行

作为替代方案,您可以使用 SwingX 项目的 JXTable,它具有内置搜索功能。 SwingX 库还包含一个允许搜索此类 JXTable 的组件(请参阅 JXSearchPanelJXSearchField)

关于java - 根据 Jtextfield 输入从 Jtable 中选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777148/

相关文章:

java - Tomcat 8.0.33 因 Spring 安全而崩溃

java - GUI FlowLayout,锁定所有组件位置

java - 在if语句中调用StringArray来检查项目名称是否正确

java - 自动刷新jcombobox

Java Canvas 当我调整 JFrame 大小时, Canvas 停止绘制

java - Netbean java 图形用户界面

java - 如何设置单元格之间的空间以使单元格的内容不被删除

java堆栈溢出错误递归

java - JTable动态更新

java - 使用数据库查询更新 JTable