0


试图在 Jtable 上实现这一点。

我试图对齐两个单词,例如一个在左侧,另一个在右侧,但在同一行。

String html="<html><div style='float:left;width:50%;'>left</div><div style='float:right;width:50%;'>right</div></html>";
Object rowData[][] = { { html, "Column2-data"}};

不幸的是,它没有用。我也尝试使用p标签和字体标签。

请帮助我如何使用 HTML 标签实现这一点。

4

1 回答 1

3

您可以创建自己的表格单元格渲染器以使 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);
    }
};

既然我已经对您的问题进行了更多思考,我会将文本分为两列。如有必要,您可以使用右对齐单元格渲染器将第二列中的文本右对齐,该渲染器类似于我为居中文本创建的渲染器。

于 2012-10-01T17:52:42.467 回答