使用db数据自动/手动设置列宽JTable

时间:2013-05-02 16:30:18

标签: java swing jtable

在我的代码中,我JTable填充了数据库中的数据。

这是我的JPanel的构造函数:

public MainPanel(Vector<Vector<String>> films) 
{
    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    int width = this.getSize().width;
    int height = this.getSize().height;
    int x = (dim.width-width)/2;
    int y = (dim.height-height)/2;

    header = new Vector<String>();
    data = new Vector<Vector<String>>();
    header.add("ID");
    header.add("Name");
    header.add("Year");
    header.add("Genre");
    this.data = films;

    this.setVisible(true);
    this.setLocation(x, y);
    initComponents();        
}

这是JTable的初始化:

jTable2 = new javax.swing.JTable();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jTable2.setModel(new javax.swing.table.DefaultTableModel(
        data, header
));

TableColumnModel tcm;
tcm = jTable2.getColumnModel();

for (int i = 0; i < header.size(); i++)
{
    TableColumn tc;
    tc = tcm.getColumn(i);
    tc.setWidth(2);
}

任何人都可以帮助我,为什么不是宽度2并且仍然相同?

感谢您的回复。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

请参阅Setting and Changing Column Widths上的Swing教程中的部分。你使用的是错误的方法。

答案 2 :(得分:0)

通过继承AbstractTableModel创建自己的表模型。 您可以指定行/列计数,列名称和单元格值。 您将更好地了解表格模型。