java - 如何用 JTable 搜索的列填充 JTextFields?

标签 java swing search jtable jtextfield

我有一个主/详细表单,顶部有一个 JTable,所有 JTextFields 对应于下面的 JPanel。我试图在 JTable 中进行搜索,以便在选择正确的行时,所有的 JTextFields 都可以用列值填充。我不知道如何以编程方式调用行来执行此操作。如何实现?

这是我用来进行搜索的代码:

int rows = (masterTable.getModel()).getRowCount();
final int colCedula = 1; //columna de la CEDULA
final int colRuc = 11; //columna de RUC
String value = null ;
for(int i=0; i
value = (String) (masterTable.getModel()).getValueAt(i, colCedula);
if (value.equals(this.txt_BuscaCliente.getText())) {
    //CODE FOR FILLING JTEXTFIELDS
}

如果搜索找到列值并停止循环,我可以只在 //CODE 部分编写 masterTable.getSelectedRow() 然后用它的列值填充所有 JTextFields 吗???

此外,如何以编程方式突出显示选定的行?比方说,在我的搜索找到列值之后,让该行在 JTable 中突出显示

最佳答案

我将从教程文章 How to Use Tables: User Selections 中的示例开始为了理解列表选择事件。给定一个 SINGLE_SELECTION 模型,您将不必搜索;只需填写所选行中的文本字段。或者,您可以使表格模型中的单元格可编辑,而您根本不必复制它们。

附录:

Also, how is it done to have the row selected highlighted, programatically?

让您的 ListSelectionListener 实现告诉用户做出了什么选择,而不是搜索。在example引用,如下所示修改 RowListener 以循环访问所选行中的列。

private class RowListener implements ListSelectionListener {

    @Override
    public void valueChanged(ListSelectionEvent event) {
        if (!event.getValueIsAdjusting()) {
            for (int c : table.getSelectedRows()) {
                int row = table.convertRowIndexToModel(c);
                TableModel model = table.getModel();
                for (int col = 0; col < model.getRowCount(); col++) {
                    System.out.println(model.getValueAt(row, col));
                }
                System.out.println();
            }
        }
    }
}

关于java - 如何用 JTable 搜索的列填充 JTextFields?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3697062/

相关文章:

java - 在等待另一个类中按下按钮时,如何使用等待通知来停止暂停方法

java - 如何在不使用任何其他数据结构的情况下计算数组中的唯一元素JAVA

java - Swing GTK L&F 标题栏上的额外按钮

Java 窗口是空的

java - 如何将文本设置到位于 jFrame 内的 jPanel 内的 jTextField 中以从其他 jFrame 中

python - 在多个文件中搜索多个子字符串的索引

search - Elasticsearch Mac地址搜索/映射

c# - 在 C# 中,如何在不逐行搜索的情况下在大型文本文件中搜索字符串?

java - 有哪些工具可用于在 Java 中创建进程内 COM 服务器?

java - MySQL datetime NULL 问题, '=' 和 '!=' 返回 0 行