我正在为结算工具创建一个应用程序。我希望使用右对齐显示金额列。如何为JTable列设置正确的对齐方式?
答案 0 :(得分:30)
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);
答案 1 :(得分:8)
试试这个:
JTable tbl = new JTable(3,3) {
DefaultTableCellRenderer renderRight = new DefaultTableCellRenderer();
{ // initializer block
renderRight.setHorizontalAlignment(SwingConstants.RIGHT);
}
@Override
public TableCellRenderer getCellRenderer (int arg0, int arg1) {
return renderRight;
}
};
答案 2 :(得分:4)
请参阅Concepts: Editors and Renderers,注意“Number
- 由右对齐标签呈现。”让你的TableModel
返回正确的班级。作为一个具体示例,请注意Integer
是Number
,同时在此example中检查getColumnClass()
的实施情况。在这个相关的example中,第0个colIndex
返回Object.class
,它是“由显示对象字符串值的标签呈现的”。默认情况下,标签是左对齐的。
switch (colIndex) {
case 0: return Object.class;
…
}
相比之下,Integer.class
“由右对齐标签呈现。”
switch (colIndex) {
case 0: return Integer.class;
…
}
这些是使用Class Literals as Runtime-Type Tokens的示例,在JTable
的上下文中讨论了here。
答案 3 :(得分:2)
您必须为表格单元格获取DefaultTableCellRenderer并调用setHorizontalAlignment(alignment)。
示例可以在链接上找到:
http://www.techrepublic.com/article/how-to-justify-data-in-a-jtable-cell/5032692/
http://www.coderanch.com/t/337549/GUI/java/align-data-columns-JTable