[英]Alignment in a JTable cell
我使用以下DefaultTableCellRenderer
在我的表中顯示貨幣。 它也可以正常工作,只有我遇到的問題是,我設置此渲染器的列中的數字是左對齊的,其他所有對齊的都是正確的。 我想知道為什么。
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
用於渲染數字的默認單元格渲染器將其水平對齊設置為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);
}
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.