# JToolBar Separator



## Ghosti (15. Jul 2008)

Hallo,

hab ein kleines Problem mit einer ToolBar.

Ich will zwischen bestimmten Buttons in der ToolBar einen Separtor setzten.

Die ToolBar hat ihr Std-Layout.


```
toolBar.add(Btn1);
//toolBar.add(Box.createHorizontalStrut(5));
toolBar.addSeparator(new Dimension(5,0));
toolBar.add(new JSeparator(SwingConstants.VERTICAL));
toolBar.addSeparator(new Dimension(5,0));

toolBar.add(Btn2); 
// usw...
```

Wenn ich den Separtor mit new JSepartor() setzte funktioniert das zwar echt gut, jedoch verschiebt er mit dann alle Button die rechts davon steht auch komplett an den rechten Rand der Toolbar. 
Was muss ich machen damit Sie alle schön links ausgerichtet werden?

thx


----------



## L-ectron-X (15. Jul 2008)

toolbar.addSeparator();


----------



## Ghosti (15. Jul 2008)

@ L-ectron-X

toolbar.addSepartor() kenn ich. ich will aber keinen einfach Platzhalter sonder diesen schönen vertikalen Trennstrich, das funktioniert auch mit
toolBar.add(new JSeparator(SwingConstants.VERTICAL)); 
gut.

Jedoch werden, wie bereits gesagt, die anderen Buttons alle komplett nach rechts gerückt und ich krieg sie nicht mehr nach links (nichtmal mit der Glue()-Methode der Klasse Box.


----------



## L-ectron-X (16. Jul 2008)

Ich verstehe nicht, mit dem von mir geposteten Schnipsel erhältst du doch "diesen schönen vertikalen Trennstrich".
Den anderen Fehler kenne ich, hab ihn aber mit meinem obigen Schnipsel nicht reproduzieren können, wohl aber mit deinem Codebeispiel.
Nimm einfach meinen Schnipsel und gut.


----------



## Ghosti (17. Jul 2008)

Hi L-ectron-X,

das mit deinem Schnipsel funktioniert bei mir nicht. Ich sehe in meiner Toolbar keinen Trennstrich, es wird nur ein Freiraum erzeugt.

wenn ich z.b. toolbar.addseparator(new Dimension(100,10));
mache dann hab ich zwischen den Button einen 100ter Abstand jedoch deinen vertikalen Trennstich.

Hab ich irgendetwas übersehen???
Wenn ich das mit meinem Schnipsel mache, dann sehe ich den Trennstrich, aber es werden alle Buttons verschoben.


----------



## L-ectron-X (18. Jul 2008)

Probiere mal dieses kleine Programm aus:

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class JTableAddRowExample extends JFrame implements ActionListener {
   private DefaultTableModel model;
   private JButton btn1, btn2;
   private JTable table;
   public JTableAddRowExample(String title) {
      super(title);
      Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
      setSize((int)dim.width*50/100, (int)dim.height*50/100);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      String[] columnNames = new String[] {
         "Spalte 1", "Spalte 2", "Spalte 3", "Spalte 4"
      };
      
      model = new DefaultTableModel(columnNames, 0);
      
      JToolBar tb = new JToolBar();
      btn1 = new JButton("Neue Zeile");
      btn1.addActionListener(this);
      tb.add(btn1);
      
      tb.addSeparator();
      
      btn2 = new JButton("Zeile löschen");
      btn2.addActionListener(this);
      tb.add(btn2);

      add(tb, BorderLayout.NORTH);

      table = new JTable(model);
      add(new JScrollPane(table), BorderLayout.CENTER);
   }
   
   public void actionPerformed(ActionEvent e) {
      Object source = e.getSource();
      if(source == btn1) {
         model.setRowCount(model.getRowCount()+1);
      }
      else if(source == btn2) {
         if(table.getSelectedRow() > -1)
            model.removeRow(table.getSelectedRow());
      }
   }


   public static void main(String[] args) {
      try {
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      }
      catch(Exception e) {
         e.printStackTrace();
      }
      new JTableAddRowExample("JTableAddRowExample").setVisible(true);
   }
}
```


----------



## Ghosti (18. Jul 2008)

@L-ectron-X

Danke für dein Beispiel, hab es gestern selber lösen können. Es lag am L&F!

Das SystemLookAndFeel ist windows und wenn aktiv ist dann sieht man auch den Separtor ganz schön bei allen anderen gibt es nur einen breiteren Abstand zwischen den Buttons. Hab drüber in der BugList von Sun was gefunden.

Danke dir!!


----------

