我对 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/