I want to add right cell-padding to a column in my JTable, how do I do it?
I tried searching online but I can't seem to find a definitive answer for this.
I hope someone can help me.
Regards, Chad
I want to add right cell-padding to a column in my JTable, how do I do it?
I tried searching online but I can't seem to find a definitive answer for this.
I hope someone can help me.
Regards, Chad
Use a custom TableCellRenderer
, and specify setHorizontalAlignment(JLabel.RIGHT)
. There's a related example here that illustrates JLabel.CENTER
.
Addendum: My problem is padding and not alignment.
If you want the padding inside the cell, rather than between cells, you can use a border in the renderer, as @Guillaume Polet suggests. Note that the border can be asymmetric; the example below pads only on the right.
setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
–
Impudence HeaderRenderer
? –
Novelist A slightly enhanced version of @trashgod's correct answer is to compound the border with the padding: doing so guarantees that the default borders (f.i. the focus indicator) are not lost:
DefaultTableCellRenderer r = new DefaultTableCellRenderer() {
Border padding = BorderFactory.createEmptyBorder(0, 10, 0, 10);
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
setBorder(BorderFactory.createCompoundBorder(getBorder(), padding));
return this;
}
};
Or use SwingX' JXTable and decorate the renderer with a Highlighter:
BorderHighlighter hl = new BorderHighlighter(
BorderFactory.createEmptyBorder(0, 10, 0, 10));
hl.setInner(true);
table.addHighlighter(hl);
Give a try with setInternalcellSpacing(Dimension d) of JTable.This will set spaces in both sides.If you strictly want to have it in one side use a renderer as here
setInternalSpacing
? –
Novelist javax.swing.JTable.setIntercellSpacing(Dimension)
–
Impudence © 2022 - 2024 — McMap. All rights reserved.