如何使用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.";
}
}
}
如何创建变量&#34; row&#34;使TableModel可行?
答案 0 :(得分:0)
通常你会在第一栏中遇到特殊情况。例如,如果“真实数据”在矩阵中。示意性地:
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];
}
}
P.S。与您的订购相比,矩阵的订购错误有50/50。 : - )