0


Trying to achieve this on Jtable.

I was trying to align two words like one on left side and another on right side but in the same line.

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"}};

unfortunately it didn't work. I tried with p tag and font tag as well.

Please help me on how can I achieve this using HTML tags.

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);
    }
};

あなたの質問についてもう少し考えたので、テキストを2列に配置します。必要に応じて、テキストを中央揃えにするために作成したものと同様の右揃えセルレンダラーを使用して、2番目の列のテキストを右揃えにすることができます。

于 2012-10-01T17:52:42.467 に答える