1

在我的代码中,我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 并且仍然相同?

感谢您的任何回复。

4

3 回答 3

3

调查:

  1. JTable.getColumnModel()
  2. TableColumnModel
  3. TableColumnModel.getColumn(int)
  4. TableColumn.setWidth(int)以及最大/最小变体。
于 2013-05-02T16:35:13.790 回答
2

请参阅 Swing 教程中有关设置和更改列宽的部分。您使用了错误的方法。

于 2013-05-02T17:01:44.760 回答
0

通过继承 AbstractTableModel 来创建自己的表模型。您可以指定行/列计数、列名和单元格值。您将对表模型有更好的理解。

于 2013-05-02T18:38:08.563 回答