# Problem mit JComboBox in JToolBar



## manuche (3. Nov 2007)

Hallo!
Ich habe eine JToolBar mit 3 JButtons drin... Soweit kein Porblem nur wenn ich jetzt eine JComboBox einfüge füllt sie die komplette JToolBar!! Ich habs schon mit der Methode setSize(...) probiert nur leider ändert sich dabei am Format der ComoBox nichts... Wo könnte das Problem sein, denn es müssen noch ein paar mehr Componenten rein...


```
toolSave.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        JOptionPane.showMessageDialog(null, "xyz", "zyx", JOptionPane.INFORMATION_MESSAGE);
      }
    });
    toolmenu.add(toolSave);
    ...
    toolmenu.add(toolOpen);
    ...
    toolmenu.add(toolGraphic);
    fontChooser.setSize(30, 100);   //funktioniert leider nicht.... -.-
    for(int zaehler = 0; zaehler < fonts.length; zaehler++){ 
      fontChooser.addItem(fonts[zaehler]);
    }
    toolmenu.add(fontChooser);
    toolmenu.setFloatable(false);
    toolmenu.setSize(Toolkit.getDefaultToolkit().getScreenSize().width, 30);

    setLayout(layout);
    setAktFont(fontName);
    textBlock.getViewport().add(textArea);
    
    //Layout
    add(toolmenu, new GridBagConstraints(0, 0, 1, 1, 1., 0.,
               GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
    add(textBlock, new GridBagConstraints(0, 1, 1, 1, 1., 1.,
               GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(40, 0, 0, 0), 500, 700));
```

Wenn ich eine zweite ComboBox einfüge teilen sich die beiden den restlichen Platz aber das soll nicht Sinn der Sach sein!


----------



## Guest (3. Nov 2007)

Verwende setPreferredSize.


----------



## manuche (3. Nov 2007)

War ne gute Idee funktioniert aber leider auch nich....


----------



## Guest (3. Nov 2007)

manuche hat gesagt.:
			
		

> War ne gute Idee funktioniert aber leider auch nich....


OK, dann die Maximale Größe. 
Toolbar hat per Default FlowLayout... und das zieht alles auseinander, was es auseinander ziehen kann.


```
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JToolBar;

public class ToolbarTest extends JFrame
{
   private static final long serialVersionUID = 1L;

   public ToolbarTest()
   {
      super("Toolbar Test");
      initUI();
   }

   private void initUI()
   {
      JToolBar toolbar = new  JToolBar();
      JComboBox comboBox = new JComboBox(new String[] { "Eins", "Zwei", "Drei"});
      comboBox.setPreferredSize(new Dimension(150, 22));
      comboBox.setMaximumSize(comboBox.getPreferredSize());
      toolbar.add(comboBox);
      getContentPane().add(toolbar, BorderLayout.NORTH);
   }
   
   public static void main(String[] args)
   {
      final JFrame f = new ToolbarTest();
      f.addWindowListener(
            new WindowAdapter() {
               public void windowClosing(WindowEvent e) {
                  f.setVisible(false);
                  System.exit(0);
               }
            }
      );
      f.setSize(600, 400);
      f.setLocationRelativeTo(null);
      f.setVisible(true);
   }
}
```


----------

