Hi Stuart At the time you set the max size, the preferred size is not known (you are on the server-side and no Swing component has been created yet).
combo.setMaximumSize(combo.getPreferredSize()); If I were you, I'd write a combo box extension that returns the preferred size when asked for the max size or maybe play around with adding a trailing ULCFiller and see if this helps you achieve the toolbar layout that you want. Etienne -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stuart Booth Sent: Tuesday, August 15, 2006 7:07 PM To: [email protected] Subject: [ULC-developer] ULCComboBox getPreferredSize/setMaximumSize Converting a program from Swing to ULC, I notice a change of behavior, which I hope you can give me some advise on. I have included below a class that demonstrates the problem, followed by a Swing class that is working as expected. Basically, the combobox in the toolbar is being extended to the end. This happens by default in Swing, but there a simple setMaximumSize of the preferred size sets the width to a reasonable size. In ULC, this isn't working as it does in Swing. Can you look at this, please, and offer any suggestions on how I might rework this to get it working like Swing? Thanks! -Stuart Booth (Abacus Research) public class BugsFrameApp extends AbstractApplication { public void start() { new BugsFrame().setVisible(true); } public static void main(String[] args) { DevelopmentRunner.setApplicationClass(BugsFrameApp.class); DevelopmentRunner.run(); } class BugsFrame extends ULCFrame { public BugsFrame() { super("Bugs"); setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE); setSize(800, 900); addComponents(); } private void addComponents() { ULCToolBar toolbar = new ULCToolBar(); toolbar.add(new ULCButton("A")); toolbar.add(new ULCButton("B")); toolbar.addSeparator(); ULCComboBox combo = new ULCComboBox(new String[]{"Red", "Green", "Blue"}); toolbar.add(combo); combo.setMaximumSize(combo.getPreferredSize()); add(toolbar, ULCBorderLayoutPane.NORTH); } } } This is the Swing class that works perfectly: public class BugsFrameApp extends JFrame { public static void main(String[] args) { new BugsFrameApp().setVisible(true); } public BugsFrameApp() { super("Bugs"); setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE); setSize(800, 900); addComponents(); } private void addComponents() { JToolBar toolbar = new JToolBar(); toolbar.add(new JButton("A")); toolbar.add(new JButton("B")); toolbar.addSeparator(); JComboBox combo = new JComboBox(new String[]{"Red", "Green", "Blue"}); toolbar.add(combo); combo.setMaximumSize(combo.getPreferredSize()); add(toolbar, BorderLayout.NORTH); } } _______________________________________________ ULC-developer mailing list [email protected] http://lists.canoo.com/mailman/listinfo/ulc-developer _______________________________________________ ULC-developer mailing list [email protected] http://lists.canoo.com/mailman/listinfo/ulc-developer
