Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable列标题模糊_Java_Swing_Jtable_Jtableheader - Fatal编程技术网

Java JTable列标题模糊

Java JTable列标题模糊,java,swing,jtable,jtableheader,Java,Swing,Jtable,Jtableheader,我创建了库存应用程序,当从数据库显示事务列表时,我在JScrollPane中使用JTabel。根据需要将JScrollPane horizontalScrollBar策略设置为AS_NEED,将JTable setAutoResize设置为false,并使用TableColumnModel设置列宽。当手动设置宽度时,表格宽度将离开视口并激活水平方向交叉栏。但我运行程序并使用滚动条查看视口外的列,文本和标题文本在滚动过程中变得模糊。 按照给定的代码进行项目的屏幕截图 使用DefaultTableM

我创建了库存应用程序,当从数据库显示事务列表时,我在JScrollPane中使用JTabel。根据需要将JScrollPane horizontalScrollBar策略设置为AS_NEED,将JTable setAutoResize设置为false,并使用TableColumnModel设置列宽。当手动设置宽度时,表格宽度将离开视口并激活水平方向交叉栏。但我运行程序并使用滚动条查看视口外的列,文本和标题文本在滚动过程中变得模糊。 按照给定的代码进行项目的屏幕截图

使用DefaultTableModel设置TableModel

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));
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);
使用TableColumnModel设置列的宽度

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));
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);
使用水平滚动条前的屏幕截图

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


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

下一行是您的问题:

table1.getTableHeader().setPreferredSize(new Dimension(table1.getTableHeader().getPreferredSize().width, 35)); 
使用
TableCellRenderer
设置页眉高度,例如:

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

发布的代码似乎还可以。你能发布SSCCE吗?这可能与: