java - 读取 JScrollPane 的内容

标签 java swing jtable jscrollpane defaulttablemodel

有没有办法读取 JScrollPane 的内容?

我实现的是一个 DefaultTableModel,它具有使用 addColumn() 方法添加的三列。我使用此 DefaultTableModel 作为 JTable 声明和实现的参数。此 JTable 稍后用作 JScrollPane 的声明和实现的参数。在代码的整个执行过程中,我使用 addRow() 方法将 nows 添加到 DefaultTableModel。我手头的目标是读取添加的行的内容。

有人有什么建议吗?我们将不胜感激!

JTabbedPane tabbedPane = new JTabbedPane();
DefaultTableModel model = new DefaultTableModel();

model.addColumn("Column1");
model.addColumn("Column2");
model.addColumn("Column3");

JTable testResults = new JTable(model) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
};

JScrollPane resultTab = new JScrollPane(testResults);
resultTab.setName("Tab1");
resultTab.setVisible(true);

Thread thread1 = new Thread() {
    public void run() {
        if(tabbedPane.getSelectedComponent().getName().compareTo("Tab1") == 0) {
            model.addRow(new Object[]{"content1", "content2", "content3"});
            model.addRow(new Object[]{"content4", "content5", "content6"});
            ...
            ...
            ...
            model.addRow(new Object[]{"this", "will", "continue"});
        }
        else {
            model.addRow(new Object[]{"content1", "content2", "content3"});
            model.addRow(new Object[]{"content4", "content5", "content6"});
        }
    };
thread1.start();

我想读取数据“content1”、“content2”、“content3”、“content4”、“content5”、“content6”等。省略号表示在整个过程中添加的行数未定义源代码。

最佳答案

您想从 DefaultTableModel 而不是 JScrollPane 读取数据 - 它只是一个 Swing 容器。

getDataVector() 将在此处为您提供帮助。它返回表示表模型中数据的 vector 的 vector 。

关于java - 读取 JScrollPane 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11582062/

相关文章:

java - 使用反射来调用以 WebSphere 数据库连接作为参数的方法

java - JxBrowser 卡住整个应用程序

Java,单击时更改 JLabel 文本

java - JTable标题焦点查询?

java - 数据未加载回 Jtable(使用可序列化对象)

java - 使用 maven 的 RPM 包

具有多个源的 Java 命令行编译

java - Android 在某些情况下会崩溃

java - 如何停止方法启动直到 JFrame 关闭

java - 使用 cellEditor() 删除带有 jButton 的 jTable 行;