java - 初始化后如何更改JTable?

标签 java swing user-interface

我对 Java 中的 Swing 开发还很陌生。初始化完成后,我需要一些帮助来使用我拥有的一些值填充表。

someClass extends JPanel{
private JLabel something;
static private JTable Table;
private JPanel temp;

someClass(){
    setLayout(new BorderLayout());
    selectSong = new JLabel("some text");
    temp = new JPanel();
    temp.setLayout(new FlowLayout());
    temp.add(something);
    Table = new JTable();
    //Table.setVisible(false);
    add(temp, BorderLayout.NORTH);

    add(new JScrollPane(Table), BorderLayout.CENTER);

}
static void populateTable(ArrayList<String> list){
    DefaultTableModel dtm = new DefaultTableModel();
    dtm.addColumn("title", list.toArray());
    Table = new JTable(dtm);
    Table.setVisible(true);
    new someClass().add(new JScrollPane(Table), BorderLayout.CENTER);
}
}

这个名为 someClass 的类是 JPanel 的子类。我正在使用这个对象并将其附加到主框架(此处未显示)。据此,最初使用一个空表创建一个 GUI 表单,完成一些操作后,我调用 populateTable 函数,我希望它将表的值更改为具有一列(名为 title)并包含 arraylist后续行中的元素。

最佳答案

假设您将 JTable 命名为“table”:

static void populateTable(ArrayList<String> list){
        DefaultTableModel dtm = new DefaultTableModel();
        dtm.addColumn("title", list.toArray());
        table.setModel(dtm);
    }
    }

您也不应该在该方法中调用table.setVisible(true);,因为它与填充表无关。

编辑:按照其他人的建议:最好使用 DefaultTableModel 的类属性。

关于java - 初始化后如何更改JTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41161385/

相关文章:

java - 如何安装自定义 LAF?

java - 当未在java swing表单中选择日期时,显示mysql数据库表中的所有记录

java - 使用 jframe 的多个 jComponent 动画

ios - 文本字段可编辑的视觉指示

wpf - 丰富的 GUI OS X 框架?

java - Android:对话框在线程中崩溃?

java - 取消被 Socket.Accept() 阻止的 SwingWorker?

java - 缓存不可序列化的对象

java - java中调用构造函数的方法

java - 结果集永远不会关闭 - Sonarqube 分析