【问题标题】:JTable Column Title BlurredJTable 列标题模糊
【发布时间】:2014-02-20 07:13:59
【问题描述】:

我创建了库存应用程序,当显示来自数据库的交易列表时,我在 JScrollPane 中使用 JTabel。将 JScrollPane Horizo​​ntalScrollBar Policy 设置为 AS_NEED 并将 JTable setAutoResize 设置为 false 并根据需要使用 TableColumnModel 设置列宽。当 Width 手动设置表格宽度超出视口并激活 Horizo​​talScrollBar 时。但是我运行程序并使用滚动条查看视口外的列,文本和标题文本在滚动过程中变得模糊。 按照给定的代码截屏项目

使用 DefaultTableModel 设置表模型

DefaultTableModel dm;
dm = new DefaultTableModel(0, 0){
            @Override
            public boolean isCellEditable(int row, int column) {
                return false;
            }            
        };
        String titleCol[] = new String[]{"ID","Invoice No","Date","Account Name","Total Amount","Taxeble Amount","Tax %","Tax Amount","Discount Amount","Grand Total"};
        dm.setColumnIdentifiers(titleCol);
        table1.setModel(dm);

       table1.getTableHeader().setFont(new Font("Tahoma", Font.BOLD, 14));

使用 TableColumnModel 设置列宽

table1.getTableHeader().setPreferredSize(new Dimension(table1.getTableHeader().getPreferredSize().width, 35));

        TableColumnModel columnModel = table1.getColumnModel();

        columnModel.getColumn(0).setMinWidth(50);
        columnModel.getColumn(0).setMaxWidth(50);
        columnModel.getColumn(1).setMinWidth(85);
        columnModel.getColumn(1).setMaxWidth(85);
        columnModel.getColumn(2).setMinWidth(100);
        columnModel.getColumn(2).setMaxWidth(100);
        columnModel.getColumn(3).setMinWidth(250);
        columnModel.getColumn(4).setMinWidth(100);
        columnModel.getColumn(4).setMaxWidth(100);
        columnModel.getColumn(5).setMinWidth(130);
        columnModel.getColumn(5).setMaxWidth(130);
        columnModel.getColumn(6).setMinWidth(75);
        columnModel.getColumn(6).setMaxWidth(75);
        columnModel.getColumn(7).setMinWidth(130);
        columnModel.getColumn(7).setMaxWidth(130);
        columnModel.getColumn(8).setMinWidth(130);
        columnModel.getColumn(8).setMaxWidth(130);
        columnModel.getColumn(9).setMinWidth(130);
        columnModel.getColumn(9).setMaxWidth(130);

使用水平滚动条之前的屏幕截图

使用水平滚动条后的屏幕截图

那么有什么办法可以避免模糊。

【问题讨论】:

标签: java swing jtable jtableheader


【解决方案1】:

你的问题在下一行:

table1.getTableHeader().setPreferredSize(new Dimension(table1.getTableHeader().getPreferredSize().width, 35)); 

TableCellRenderer的帮助下设置标题的高度,例如:

DefaultTableCellRenderer defaultRenderer = (DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer();
defaultRenderer.setPreferredSize(new Dimension(0,35));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2014-05-16
    相关资源
    最近更新 更多