java - 获取数据在 JTable 中的位置

标签 java swing search jtable locate

我的问题是这是否是在 JTable 中定位数据的一种方法。

table = new JTable();
    table.setModel(new DefaultTableModel(
        new Object[][] {
            {"Peter", new Integer(15)},
            {"Max", new Integer(12)},
        },
        new String[] {
            "Name", "Age"
        }
    )

现在我想要例如的位置。 12 这样当我点击按钮时我就可以标记它。如果可能的话,如果我还可以搜索号码或名称,那就太好了。

提前感谢您的回答

最佳答案

这里是查找任意列中包含指定值的第一行的方法。

public static int firstRowContainsObject(JTable table, Object obj) {
    for (int i = 0; i < table.getRowCount(); i++) {
        for (int j = 0; j < table.getColumnCount(); j++) {
            if (Objects.equals(obj, table.getValueAt(i, j))) {
                return i;
            }
        }
    }
    return -1;
}

注意:如果在表中没有找到这样的对象,此方法返回 -1。

在您的案例中的用法:

firstRowContainsObject(table, 12); // returns 1 
firstRowContainsObject(table, "Peter"); // returns 0
firstRowContainsObject(table, "Mary"); // returns -1

关于java - 获取数据在 JTable 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168929/

相关文章:

java - 如何使对话框始终位于最前面?

java - 基本Java : WOD with GUI (needing pauses/stops)

search - 在 vim 中查找变量的下一次出现

python - 在 8 拼图游戏中用 Python 计算曼哈顿距离

java - 如何解析包含整数和数字的字符串

java - 未知实体类型异常 : Unable to locate persister (Hibernate 5. 0)

Java byte 将值错误字符串插入到字节

java - 确定哪些行定期更新或插入到sql server中

javascript - Angularjs:名称以 ! 开头时搜索过滤器不起作用(感叹号)

java - 我正在尝试通过 JFrame 将数据插入 MySQL