Hallo zusammen,
also erstmal zu meinem Problem:
Ich habe ein JPanel mit FlowLayout, dass einige Buttons anzeigt. Da auf dem kompletten JFrame noch andere Panels liegen und der Frame in der Größe veränderbar sein soll, möchte ich, dass das Panel mit den Buttons Scrollbalken bekommt.
So aktuell gibt es einen Scrollbalken unten, wenn die Buttons nicht im Bereich von 505px angezeigt werden können.
Nun möchte ich jedoch, dass das JPanel mit den Buttons auf die Breite des JFrames gesetzt wird, sodass die Knöpfe nicht mehr alle nebeneinander sondern auch untereinander dargestellt werden.
Hierzu verwende ich folgendes:
Nun klappt zwar das Resizing, wenn der Frame größer gezogen wird, allerdings wenn der Frame kleiner gezogen wird, ändert sich die Breite des Panels nicht. Ich bin echt am verzweifeln und bekomme es nicht hin.
Ich hoffe ihr könnt mir da weiterhelfen, habe schon im Forum gesucht, aber nichts passendes gefunden. Das mit der Methode überschreiben setSize hab ich hier ausm Forum.
Ich danke euch wie immer Recht herzlich für eure Hilfe.
m!k3
also erstmal zu meinem Problem:
Ich habe ein JPanel mit FlowLayout, dass einige Buttons anzeigt. Da auf dem kompletten JFrame noch andere Panels liegen und der Frame in der Größe veränderbar sein soll, möchte ich, dass das Panel mit den Buttons Scrollbalken bekommt.
Code:
/* Set Content Pane */
contentPanel = new JPanel();
northPanel = new JPanel(new FlowLayout());
southPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)){
contentPanel.setLayout(new BorderLayout());
label = new JLabel("");
spane = new JScrollPane(southPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
spane.setViewportView(southPanel);
northPanel.add(label);
contentPanel.add(northPanel, BorderLayout.NORTH);
contentPanel.add(spane, BorderLayout.CENTER);
// so hier werden Buttons gesetzt auf das spane, sowie ein Label aufs northPanel (habs mal weggelassen)
// ....
// ....
super.setContentPane( contentPanel );
/* Set GUI */
super.pack();
super.setSize(505,560);
super.setVisible(true);
So aktuell gibt es einen Scrollbalken unten, wenn die Buttons nicht im Bereich von 505px angezeigt werden können.
Nun möchte ich jedoch, dass das JPanel mit den Buttons auf die Breite des JFrames gesetzt wird, sodass die Knöpfe nicht mehr alle nebeneinander sondern auch untereinander dargestellt werden.
Hierzu verwende ich folgendes:
Code:
southPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)){
public void setSize(Dimension d){
d.width = getParent().getSize().width;
super.setSize(d);
super.setPreferredSize(d);
}
};
Nun klappt zwar das Resizing, wenn der Frame größer gezogen wird, allerdings wenn der Frame kleiner gezogen wird, ändert sich die Breite des Panels nicht. Ich bin echt am verzweifeln und bekomme es nicht hin.
Ich hoffe ihr könnt mir da weiterhelfen, habe schon im Forum gesucht, aber nichts passendes gefunden. Das mit der Methode überschreiben setSize hab ich hier ausm Forum.
Ich danke euch wie immer Recht herzlich für eure Hilfe.
m!k3