gpt4 book ai didi

java - JTable 列标题模糊

转载 作者:行者123 更新时间:2023-12-01 13:23:41 25 4
gpt4 key购买 nike

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

使用 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));

使用 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);

使用水平滚动条之前的截图 enter image description here

使用水平滚动条后的截图 enter image description here

那么有没有办法避免模糊。

最佳答案

下一行您的问题:

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

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

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

关于java - JTable 列标题模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21900755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com