gpt4 book ai didi

Java:JTable 中的控制台输出

转载 作者:行者123 更新时间:2023-12-02 06:45:51 26 4
gpt4 key购买 nike

程序应在 JTable 中列出卷。

例如:我从 vollist.java 类获得此输出。

while (volumeIter.hasNext()) {
volume = volumeIter.next();
System.out.println(volume.getName());
}

控制台输出:

vol1
vol2
vol3
...

如何在我的 JTable 中获取此控制台输出。

table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{null, vollist.volname(null), null, null, null},
{null, vollist.volname(null), null, null, null},
{null, vollist.volname(null), null, null, null},
},
new String[] {
"Nr:", "Volume Name", "TotalSize [MB]", "Used [MB]", "Status"
}
));

只显示 row1 -> vol1 row2 -> vol1 ......我怎样才能得到像控制台 row1 -> vol1 row2 -> vol2 (向上计数)那样的输出

最佳答案

定义并实现您的 TableModel(在本例中扩展 AbstractTableModel)

这更广泛,但是是 OOP 强类型。

class VolumeTableModel extends AbstractTableModel {
private String[] columnNames = {"Nr:", "Volume Name", "TotalSize [MB]", "Used [MB]", "Status"};
private ArrayList<Volume> volumes;

public VolumeTableModel(ArrayList<Volume> volumes) {
this.volumes = volumes;
}

public VolumeTableModel() {
volumes = new ArrayList<Volume>();
}

public void addVolume(Volume volume) {
volumes.add(volume);
fireTableRowsInserted(volumes.size()-1, volumes.size()-1);
}

public int getColumnCount() {
return columnNames.length;
}

public int getRowCount() {
return volumes.size();
}

public String getColumnName(int col) {
return columnNames[col];
}

public Object getValueAt(int row, int col) {
Volume volume = volumes.get(row);
switch (col) {
case 0: return volume.number;
case 1: return volume.name;
case 2: return volume.totalSize;
case 3: return volume.usedSize;
case 4: return volume.status;
default: return null;
}
}

public Class getColumnClass(int col) {
return String.class;
//or just as example
switch (col) {
case 0: return Integer.class;
case 1: return String.class;
case 2: return Integer.class;
case 3: return Integer.class;
case 4: return String.class;
default: return String.class;
}
}
}

并将其指定为表的 TableModel

//if you have the Volume ArrayList
VolumeTableModel myTableModel = new VolumeTableModel(volumesArrayList);
//if you dont have the Volume ArrayList
VolumeTableModel myTableModel = new VolumeTableModel();
myTableModel.addVolume(volume);
JTable table = new JTable(myTableModel);

一些来源来自 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

关于Java:JTable 中的控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645948/

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