destructo_gold
destructo_gold

Reputation: 319

Aligning all panel components java

I am using the BoxLayout layout manager in java, and have aligned a bunch of components:

myLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
myTextBox.setAlignmentX(Component.LEFT_ALIGNMENT);
myButton.setAlignmentX(Component.LEFT_ALIGNMENT);
...

I have a lot of components, and this seems over the top. Is there a shorthand way?

I tried the following, but setAlignmentX isn't a method inside Component?

for (Component c : personPanel.getComponents()) {
    c.setAlignmentX(Component.LEFT_ALIGNMENT);
}

Upvotes: 1

Views: 1838

Answers (1)

Peter Lang
Peter Lang

Reputation: 55594

setAlignmentX is defined in JComponent.

You could cast after checking:

for (Component c : personPanel.getComponents()) {
    if(c instanceof JComponent) {
        ((JComponent)c).setAlignmentX(Component.LEFT_ALIGNMENT);
    }
}

If you have nested your components, it might be necessary to make a recursive method out of that.

Upvotes: 3

Related Questions