在JTable单元格中对齐
问题描述:
我正在使用以下DefaultTableCellRenderer
在我的表格中显示货币。它也可以正常工作,只有我遇到的问题是,我设置此渲染器的列中的数字左对齐,其他所有对齐都正确。我想知道为什么。在JTable单元格中对齐
public class DecimalFormatRenderer extends DefaultTableCellRenderer {
public static final DecimalFormat formatter = new DecimalFormat("#.00");
@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
value = formatter.format((Number) value);
return super.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
}
}
答
使用JTable
渲染号码默认单元格渲染器设置的IT水平对齐到JLabel.RIGHT
...
static class NumberRenderer extends DefaultTableCellRenderer.UIResource {
public NumberRenderer() {
super();
setHorizontalAlignment(JLabel.RIGHT);
}
}
渲染将使用默认JLabel.LEADING
(是基于一个JLabel
)。
如果你改变你的渲染器设置在构造函数中的水平对齐方式,它应该对准您想要它去......
public class DecimalFormatRenderer extends DefaultTableCellRenderer {
//...
public DecimalFormatRenderer() {
super();
setHorizontalAlignment(JLabel.RIGHT);
}
//...
}
完美,谢谢。 –