views:

65

answers:

1

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);
}
+2  A: 

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.

Peter Lang