[英]Populating First Column of a JTable
如何使用AbstractTableModel预先填充JTable的第一列?
我想在第一列中放入时隙,然后在其他列中填充其他内容。
好的,因此ChannelTableModel将由GUI中的JTables使用。 基本上,它将时间段设置为从6.30-24:00开始的30分钟。 时隙必须放在JTable的第一行中
在某种程度上,我需要设置一个变量“行”来获取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。 :-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.