Java 如何格式化JTable的内容

Java 如何格式化JTable的内容,java,swing,formatting,jtable,Java,Swing,Formatting,Jtable,我使用JTable来显示数字数据和字符串。数字数据默认格式在JTable的右侧,字符串格式在左侧。我希望两者都被格式化到单元格的中心。我正在使用Nedbeans开发GUI,但它似乎对解决这个问题没有帮助 我的尝试是创建一个单元渲染器类来覆盖JTable默认单元渲染器,但是我 不知道在新单元渲染器中实际更改格式的代码行 任何帮助都将不胜感激。您的想法是正确的。在自定义TableCellRenderer中,您可以实际检查渲染的列/行/单元格,然后指定特定于列/行/单元格的格式 public sta

我使用JTable来显示数字数据和字符串。数字数据默认格式在JTable的右侧,字符串格式在左侧。我希望两者都被格式化到单元格的中心。我正在使用Nedbeans开发GUI,但它似乎对解决这个问题没有帮助

我的尝试是创建一个单元渲染器类来覆盖JTable默认单元渲染器,但是我 不知道在新单元渲染器中实际更改格式的代码行


任何帮助都将不胜感激。

您的想法是正确的。在自定义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
是为每个单元格调用的

所有可用的格式化功能在各自的文档中都有详细描述: