java - 是否有一个简单的解决方案可以将列和可编辑行动态添加到 Java 中的表模型?

标签 java swing jtable

我已经搜索了几个小时,但一直找不到任何简洁明了的解决方案来向 Java 中的表模型动态添加列/元素。也许我是一个糟糕的研究员,我不知道。这让我很沮丧,我已经阅读了两本不同的书,但在这个主题上一无所获。我掠夺了谷歌庞大的数据库,但没有发现任何用处。我已经找到了一些添加行的“解决方案”,但它们看起来不太好。我希望能够动态插入行和列。 我已经投入了 5 杯茶和大部分的精神稳定性来寻找这个解决方案,但没有成功。

我在想这样的事情:

rageTableModel.addColumn("No need to be upset anymore!");
rageTableModel.addRow("No need to be upset anymore!");

也许我的挣扎有一些越来越简单的解决方案,但我似乎无法自己找到它。我是 Java 的新手(2-3 个月的经验),所以我的知识似乎并没有涵盖那么远。任何帮助将不胜感激。

编辑:我看到这个“addColumn”方法无处不在,我正试图在我的 AbstractTableModel 的对象上使用它;没有胜利。我在文档页面上没有看到任何提及此方法的内容。 http://docs.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html

最佳答案

以下代码对我来说效果很好。如果您已经实现了自己的表模型,则它可能无法正确触发通知。

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableTest {

    public static void main(String[] args) throws InterruptedException {
        JFrame f = new JFrame();

        DefaultTableModel m = new DefaultTableModel();
        JTable t = new JTable(m);

        f.add(new JScrollPane(t), BorderLayout.CENTER);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        m.addColumn("A");
        m.addRow(new String[]{"A1"});

        Thread.sleep(1000);

        m.addColumn("B");
        m.addRow(new String[]{"A2", "B2"});     
    }
}

关于java - 是否有一个简单的解决方案可以将列和可编辑行动态添加到 Java 中的表模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11940305/

相关文章:

java - JTable 根据 ScrollPane 大小调整大小

java - JSF页面转换错误

java - 破解编码面试,第 6 版,2.8

java - 如何: get input from JTextField after button is pressed

java - paint(Graphics g) 函数被调用但我不知道在哪里?

java - 使用在 JTable 上的 JTextfield 中键入的名字或姓氏搜索 MYSQL 数据库过滤

java - 如何使 JTable 单元格不可编辑,但应该能够选择并复制当前单元格中的值

java - 运行时未找到方法

java - ListView不刷新

java - JTable 未出现在窗口中