您可以创建自己的表格单元格渲染器以使 JTable 中的文本居中
public class CenterCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
JLabel renderedLabel = (JLabel) super
.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
renderedLabel.setHorizontalAlignment(JLabel.CENTER);
return renderedLabel;
}
}
要为整个表格使用此表格单元格渲染器:
TableCellRenderer renderer = new CenterCellRenderer();
table.setDefaultRenderer(Object.class, renderer);
要定义特定于列的渲染器,您需要定义一个JTable
覆盖该getCellRenderer
方法的子类
table = new JTable(...) {
public TableCellRenderer getCellRenderer(int row, int column) {
if (column == 2) {
return renderer;
}
// else...
return super.getCellRenderer(row, column);
}
};
既然我已经对您的问题进行了更多思考,我会将文本分为两列。如有必要,您可以使用右对齐单元格渲染器将第二列中的文本右对齐,该渲染器类似于我为居中文本创建的渲染器。