0
我創建了清單應用程序,當從數據庫中顯示事務列表時,我在JScrollPane中使用JTabel。將JScrollPane horizontalScrollBar策略設置爲AS_NEED和JTable setAutoResize爲false,並根據需要使用TableColumnModel設置列寬。當寬度設置手動表寬度超出視口和HorizotalScrollBar激活。但是我運行程序並使用滾動條查看視窗外的列,文本和標題文本在滾動期間變得模糊。 按照給定的代碼使用的DefaultTableModelJTable列標題模糊
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);
截圖的項目
SetTableModel的屏幕使用,拍攝Horizotal滾動條 之前
截圖的使用Horizotal滾動條後
那麼,有沒有解決辦法,以避免模糊。
張貼的代碼似乎確定。你可以發佈SSCCE嗎? – StanislavL
這可能是相關的:[如何更改JTable標題高度? #不使用setXXXSize](http://stackoverflow.com/questions/11686535/how-to-change-jtable-header-height/11686731#11686731) – aterai
[不要使用setXXSize,永遠](http:// stackoverflow的.com /一個/203657分之7229519) – kleopatra