Java 如何格式化JTable的内容
我使用JTable来显示数字数据和字符串。数字数据默认格式在JTable的右侧,字符串格式在左侧。我希望两者都被格式化到单元格的中心。我正在使用Nedbeans开发GUI,但它似乎对解决这个问题没有帮助 我的尝试是创建一个单元渲染器类来覆盖JTable默认单元渲染器,但是我 不知道在新单元渲染器中实际更改格式的代码行Java 如何格式化JTable的内容,java,swing,formatting,jtable,Java,Swing,Formatting,Jtable,我使用JTable来显示数字数据和字符串。数字数据默认格式在JTable的右侧,字符串格式在左侧。我希望两者都被格式化到单元格的中心。我正在使用Nedbeans开发GUI,但它似乎对解决这个问题没有帮助 我的尝试是创建一个单元渲染器类来覆盖JTable默认单元渲染器,但是我 不知道在新单元渲染器中实际更改格式的代码行 任何帮助都将不胜感激。您的想法是正确的。在自定义TableCellRenderer中,您可以实际检查渲染的列/行/单元格,然后指定特定于列/行/单元格的格式 public sta
任何帮助都将不胜感激。您的想法是正确的。在自定义TableCellRenderer中,您可以实际检查渲染的列/行/单元格,然后指定特定于列/行/单元格的格式
public static class CustomTableCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
DefaultTableCellRenderer c = (DefaultTableCellRenderer) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// center everything in the first column
if (column == 0) {
c.setHorizontalAlignment(JLabel.CENTER);
}
// the background and border of the first cell should be gray
if (column == 0 && row == 0) {
c.setBackground(Color.GRAY);
c.setBorder(BorderFactory.createMatteBorder(0, 5, 0, 5, Color.GRAY));
}
return c;
}
}
请注意,DefaultTableCellRenderer
是为每个单元格调用的
所有可用的格式化功能在各自的文档中都有详细描述: