java - 如何重写已经创建的 JTable 方法

标签 java swing

我有很多 JTable,但它们通过使用另一个公共(public)类来填充数据。我已通过其构造函数传递了整个 JTable。好的,工作正常。现在由于某种原因,我需要重写一些函数...所以我会在填充数据之前执行此操作...

@Override
public boolean getScrollableTracksViewportWidth() {
}
@Override
public void doLayout() {
}
@Override
public void columnMarginChanged(ChangeEvent e) {        
}

但是我的 JTable 对象已经创建,并且已经通过了...我不能像这样覆盖...

new JTable(1,5){
    @Override
    public void columnMarginChanged(ChangeEvent e) {        
    }
}

可能是它太简单了...我不知道如何覆盖已经创建的组件对象的基本功能...

最佳答案

我设计了一个函数...现在它可以解决我的问题...

 void getAutoResizeTable(final JTable table) {

    table.getColumnModel().addColumnModelListener(new TableColumnModelListener() {
        @Override
        public void columnSelectionChanged(ListSelectionEvent lse) {
        }

        @Override
        public void columnAdded(TableColumnModelEvent tcme) {
        }

        @Override
        public void columnRemoved(TableColumnModelEvent tcme) {
        }

        @Override
        public void columnMoved(TableColumnModelEvent tcme) {
        }

        @Override
        public void columnMarginChanged(ChangeEvent ce) {
            TableColumn resizingColumn = table.getTableHeader().getResizingColumn();
            if (resizingColumn != null) {
                resizingColumn.setPreferredWidth(resizingColumn.getWidth());
            }
            if (hasExcessWidth(table)) {
                table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
            } else {
                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            }

        }

        protected boolean hasExcessWidth(JTable table) {
            return table.getPreferredSize().width < table.getParent().getWidth();
        }

    });

}

关于java - 如何重写已经创建的 JTable 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662448/

相关文章:

java - 在 spring boot 中从 @Query View 返回 List<object>

java - 用模式替换 if else 语句

java - 在 twoway-gridView 中访问 TextView

java - 多页 JTable : impossible to display less items than rows

java - 使用多维数组列表填充 JComboBox

java - MigLayout 中的 Glue 等效项

swing - GUI 问题 : Dynamic Modular Panel Layout?

Java Swing 2 方式绑定(bind)

java - 如何使 JFormattedTextField 在具有默认按钮的表单上正常运行?

java - STS/Eclipse中关闭控制台的目的是什么?