Servus erstmal.
Also ich hab ein Programm mit nem Splitpane, der untere Teil davon hat ein BorderLayout mit einer Toolbar, d.h. ich kann die Toolbar problemlos in die 4 Himmelsrichtungen schieben weil in dem CENTER ein andere Panel ist.
Die Toolbar hab ich mit setPreferredSize und FlowLayout definiert damit sie sich immer anpasst. Auf der Toolbar ist ein Panel aufgesetzt mit 8 Buttons. Das Problem ist jetzt: wenn ich die Toolbar nicht in die Himmelsrichtungen ziehe, wird sie ja als kleines Fenster dargestellt, allerdings nimmt sie da logischerweise die preferredSize an, Problem dabei, die Höhe ist anfangs dabei auf 40 gestellt weil die Toolbar anfangs im Norden dargestellt wird, mit den Buttons nebeneinander. Als kleines Fenster soll sie jedoch untereinander dargestellt werden. Im Moment ist es jetzt einfach so, zieh ich die Toolbar als Fenster, dann seh ich den ersten Button und der Rest verschwindet darunter. Ziel ist einfach, wenn ich die Toolbar als kleines Fenster hab, sollen alle Buttons sichtbar sein, sonst machts ja auch keinen Sinn.
Hab auch schon versucht was mit Component oder MouseListener dahingehend zu unternehmen, nur leider kann ich die neue Größe da immer erst definieren nachdem die Toolbar schon als Fenster dargestellt wird und beim nächsten verschhieben wird Sie dann mit neuer Größe erst dargestellt, also zu spät
Am einfachsten wäre natürlich wenn ich durch eine Methode einfach sagen kann wie groß die Toolbar als eigenständiges Fenster ist.
Da das Programm sehr groß ist, weiß ich jetzt nicht was ihr an Code zum lösen dieses problems sehen wollt, sagt einfach bescheid. Danke schon mal im Voraus
/**
* This method initializes toolbarunten
*
* @return javax.swing.JToolBar
*/
private JToolBar getToolbarunten() {
if (toolbarunten == null) {
toolbarunten = new JToolBar("Toolbar");
toolbarunten.setOrientation(JToolBar.VERTICAL);
toolbarunten.setBorder(null);
toolbarunten.add(getToolbarPanel());
toolbarunten.setRollover(true);
}
return toolbarunten;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getToolbarPanel() {
if (toolbarPanel == null) {
toolbarPanel = new JPanel();
toolbarPanel.setLayout(new FlowLayout());
toolbarPanel.setPreferredSize(new Dimension(120,40));
toolbarPanel.add(getZurueck(), null);
toolbarPanel.add(getVor(), null);
toolbarPanel.add(getNeu(), null);
toolbarPanel.add(getAendern(), null);
toolbarPanel.add(getLoeschen(), null);
toolbarPanel.add(getDrucken(), null);
toolbarPanel.add(getPdfout(), null);
toolbarPanel.add(getEnde(), null);
}
return toolbarPanel;
}
Also ich hab ein Programm mit nem Splitpane, der untere Teil davon hat ein BorderLayout mit einer Toolbar, d.h. ich kann die Toolbar problemlos in die 4 Himmelsrichtungen schieben weil in dem CENTER ein andere Panel ist.
Die Toolbar hab ich mit setPreferredSize und FlowLayout definiert damit sie sich immer anpasst. Auf der Toolbar ist ein Panel aufgesetzt mit 8 Buttons. Das Problem ist jetzt: wenn ich die Toolbar nicht in die Himmelsrichtungen ziehe, wird sie ja als kleines Fenster dargestellt, allerdings nimmt sie da logischerweise die preferredSize an, Problem dabei, die Höhe ist anfangs dabei auf 40 gestellt weil die Toolbar anfangs im Norden dargestellt wird, mit den Buttons nebeneinander. Als kleines Fenster soll sie jedoch untereinander dargestellt werden. Im Moment ist es jetzt einfach so, zieh ich die Toolbar als Fenster, dann seh ich den ersten Button und der Rest verschwindet darunter. Ziel ist einfach, wenn ich die Toolbar als kleines Fenster hab, sollen alle Buttons sichtbar sein, sonst machts ja auch keinen Sinn.
Hab auch schon versucht was mit Component oder MouseListener dahingehend zu unternehmen, nur leider kann ich die neue Größe da immer erst definieren nachdem die Toolbar schon als Fenster dargestellt wird und beim nächsten verschhieben wird Sie dann mit neuer Größe erst dargestellt, also zu spät
Am einfachsten wäre natürlich wenn ich durch eine Methode einfach sagen kann wie groß die Toolbar als eigenständiges Fenster ist.
Da das Programm sehr groß ist, weiß ich jetzt nicht was ihr an Code zum lösen dieses problems sehen wollt, sagt einfach bescheid. Danke schon mal im Voraus
/**
* This method initializes toolbarunten
*
* @return javax.swing.JToolBar
*/
private JToolBar getToolbarunten() {
if (toolbarunten == null) {
toolbarunten = new JToolBar("Toolbar");
toolbarunten.setOrientation(JToolBar.VERTICAL);
toolbarunten.setBorder(null);
toolbarunten.add(getToolbarPanel());
toolbarunten.setRollover(true);
}
return toolbarunten;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getToolbarPanel() {
if (toolbarPanel == null) {
toolbarPanel = new JPanel();
toolbarPanel.setLayout(new FlowLayout());
toolbarPanel.setPreferredSize(new Dimension(120,40));
toolbarPanel.add(getZurueck(), null);
toolbarPanel.add(getVor(), null);
toolbarPanel.add(getNeu(), null);
toolbarPanel.add(getAendern(), null);
toolbarPanel.add(getLoeschen(), null);
toolbarPanel.add(getDrucken(), null);
toolbarPanel.add(getPdfout(), null);
toolbarPanel.add(getEnde(), null);
}
return toolbarPanel;
}