gpt4 book ai didi

java - 填充 JTable 的第一列

转载 作者:行者123 更新时间:2023-12-01 05:22:43 24 4
gpt4 key购买 nike

如何使用 AbstractTableModel 预填充 JTable 的第一列?

我想在第一列中放入时隙,然后用其他内容填充其他列。

好的,ChannelTableModel 将由 GUI 中的 JTables 使用。基本上它设置的时段为 6.30 - 24:00 之间的 30 分钟。时隙必须放在 JTable 的第一行

在某种程度上,我需要设置一个变量“row”来获取 AbstractTableModel 中的行值,我发现这很难做到。

下面是到目前为止的代码。

代码:

import java.util.List;
import javax.swing.table.AbstractTableModel;


public class ChannelTableModel extends AbstractTableModel
{


public ChannelTableModel(List<Program> schedule)
{
this.channel= schedule;
}


public int getColumnCount()
{
return 3;
}


public int getRowCount()
{
return 37;
}


public Object getValueAt(int rowIndex, int columnIndex)
{

switch (columnIndex)
{
case 0: return 6+((row*30) / 60)+":"+(row % 2 == 0 ? "00" : "30") + " - " + (6 +(((row+1)*30) / 60)+":"+(row % 2 != 0 ? "00" : "30"));
default: return "Not Available.";
}

}

}

如何创建变量“row”以使 TableModel 可用?

最佳答案

通常您只需对第一列进行特殊处理。例如,如果“真实数据”位于矩阵中。示意图:

public class AddColumn0TableModel extends AbstractTableModel {

final int columnCount, rowCount;
final Object wrappedData[][];

public AddColumn0TableModel(Object[][] wrappedData) {
this.wrappedData = wrappedData;
// assume nice square data, YMMV
columnCount= 1 + wrappedData.length;
rowCount = wrappedData[0].length;
}

public int getRowCount() { return rowCount; }

public int getColumnCount() { return columnCount; }

public Object getValueAt(int row, int column) {
if (column == 0)
// implement this, in your case the time slot
return theSpecialThingForColumn0(row);
else
return wrappedData[column-1][row];
}

}

附:与您的顺序相比,我在矩阵上的顺序有 50/50 的可能性是错误的。 :-)

关于java - 填充 JTable 的第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10126299/

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