如何在JTableBinding中设置列的大小?

时间:2014-03-27 13:16:32

标签: java mysql swing jtable column-width

我正在使用NetBeans IDE 8.0创建一个GUI程序,我需要显示一个包含不同大小列的表 使用链接到MySql表的JtableBinding,它显示网格中的所有列设置为相同宽度的内容。
我会按代码更改列宽,但我注意到JtableBinding没有TableColumnModel,而我在JTable对象中有。{1}}。

是否可以为 JtableBinding 中的每一列设置不同的尺寸? 感谢所有给我回复的人。

1 个答案:

答案 0 :(得分:0)

这是我用JTableBinding实现的课程。列宽设置效果很好。

public class TMZeit extends JTable {
    private static final long serialVersionUID = 8639962215280391425L;
    private List<Zeit> list;
    private ResourceBundle bundle;
    private Object[][] columns;

    public TMZeit(ResourceBundle bundle) {
     this.list = ObservableCollections.observableList(new ArrayList<Zeit>());
       this.bundle = bundle;
     this._initComponents();
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    private void _initComponents() {
       this._initColumns();

     JTableBinding<Zeit, List<Zeit>, JTable> jTableBinding = SwingBindings
        .createJTableBinding(AutoBinding.UpdateStrategy.READ,
            this.list, this);

     for (int i = 0; i < this.columns.length; ++i) {
         ELProperty<Zeit, String> property = ELProperty.create(String
            .format("${%s}", columns[i][1]));
         ColumnBinding columnBinding = jTableBinding
            .addColumnBinding(property);
         columnBinding.setColumnClass((Class<?>) this.columns[i][2]);
         columnBinding.setColumnName((String) this.columns[i][0]);
         columnBinding.setEditable(false);
     }

     jTableBinding.bind();

     for (int i = 0; i < this.columns.length; ++i) {
         this.getColumnModel().getColumn(i)
            .setPreferredWidth((Integer) this.columns[i][3]);
     }
    }

    private void _initColumns() {
    this.columns = new Object[][] {
        { this.bundle.getString("table.column.serno.tooltip"), "serno",
            Integer.class, 30 },
        { this.bundle.getString("table.column.project.tooltip"),
            "project", String.class, 230 },
        { this.bundle.getString("table.column.activity.tooltip"),
            "activity", String.class, 230 },
        { this.bundle.getString("table.column.time.tooltip"), "time",
            Integer.class, 50 } };
    }
 ...
 }

抱歉格式不正确。

相关问题