gpt4 book ai didi

java - 向 JTable 添加一列,UI 不会改变

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:58 25 4
gpt4 key购买 nike

当我向 JTable 添加列时。表模型已更改,但表 UI 未更改。我调用了revalidate()repaint()updateUI(),...都不起作用。

这是代码的一部分:

public void insertColumn(int col, String columnName){
this.columnIdentifiers.add(col, columnName);
for (Object row: this.dataVector) {
((Vector) row).add(col, null);
}
fireTableStructureChanged();
}

model.insertColumn(col + 1, el);

最佳答案

这是我使用的片段,

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

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

public class Main {
public static void main(String[] argv) throws Exception {
DefaultTableModel model = new DefaultTableModel();
JTable table = new JTable(model);
model.addColumn("Col1");
model.addRow(new Object[] { "r1" });
model.addRow(new Object[] { "r2" });
model.addRow(new Object[] { "r3" });

Vector data = model.getDataVector();
Vector row = (Vector) data.elementAt(1);

int mColIndex = 0;
List colData = new ArrayList(table.getRowCount());
for (int i = 0; i < table.getRowCount(); i++) {
row = (Vector) data.elementAt(i);
colData.add(row.get(mColIndex));
}

// Append a new column with copied data
model.addColumn("Col3", colData.toArray());

JFrame f = new JFrame();
f.setSize(300, 300);
f.add(new JScrollPane(table));
f.setVisible(true);
}
}

关于java - 向 JTable 添加一列,UI 不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30639984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com