java - 检查 JTable 是否包含带标识符的列

标签 java swing jtable

简单的问题。有没有办法在调用 getColumn(Objectidentifier) 之前检查 JTable 是否包含列?

JTable table = ...;
table.getColumn("header");
如果 header 不存在,

getColumn() 会抛出 IllegalArgumentException。那么,捕获异常是检查列的唯一方法吗?正在寻找 hasColumn()doesColumnExist()isColumnValid() 但是,唉,什么也没有。

最佳答案

您可以简单地迭代 TableColumnModel 的可用列并查看它是否包含可用列,例如...

JTable table = ...;
Object identifier = ...;
TableColumnModel model = table.getColumnModel();
boolean found = false;
for (int index = 0; index < model.getColumnCount(); index++) {
    if (model.getColumn(index).getIdentifier().equals(identifier)) {
        found = true;
        break;
    }            
}

例如......是的,我会将其写入辅助方法/类中,以便您可以重用它。

您应该避免使用异常作为逻辑 Controller ,因为引发异常的原因可能有多种

关于java - 检查 JTable 是否包含带标识符的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24235557/

相关文章:

java - 将 "symbol"字段添加到 Java 类

java - 预热 JVM 以运行 Scalabench

java - 如何在我的 Java 应用程序中显示 map 数据(最好使用 OpenStreetMaps)?

java - 如何存储 Java 桌面应用程序(多平台)全局设置?

java - JTable 中的列名未更新

java - JTable 渲染有时会停止渲染,但会在调整窗口大小时恢复

java - 如何在 Java/Android 中使用 OAuth 通过 Gmail 发送电子邮件?

java - 如何在 Spring 上下文中包含运行时的属性?

java - BorderLayout 和 JPanel 与 JLabel

java - 如何根据从 jtextfield 和组合框接收的值将数据行添加到 Jtable