繁体   English   中英

填充JTable的第一列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM