Hi!
Ich habe ein Problem mit Swing-Design.
Ich habe einen JFrame und darin einen JInternalFrame. Der interne Frame soll größenveränderbar sein. Darin befinden sich einige Buttons, welche ich in JPanels zusammengefasst habe. Für die Panels verwende ich GridLayout. Das Problem ist, dass wenn man die Größe des internen Frames verändert auch die Buttons größer und kleiner werden. Das ergibt doch absolut keinen Sinn, wer will bitteschön 400x300px große Buttons?! Nun will ich verhindern, dass die Größe der Buttons mit dem JInternalFrame verändert wird, sprich die Größe so bleibt, egal ob die Größe des Frames verändert wird. Ich habe es schon mit Befehlen wie
oder
versucht aber es hat nicht geklappt. Außerdem hätte ich gerne, dass alle Buttons automatisch die selbe Größe haben wie das Größte und alle Panele zentiert untereinander im internen Frame sind. Ich weiß nicht genau, welchen LayoutManager ich verwenden soll.
Folgender Programmcode:
(Es werden später noch weitere Panele und mit weiteren Buttons folgen, aber das Problem besteht jetzt schon).
Vielen Dank für jede Hilfe!
Gruß,
Jan.
Ich habe ein Problem mit Swing-Design.
Ich habe einen JFrame und darin einen JInternalFrame. Der interne Frame soll größenveränderbar sein. Darin befinden sich einige Buttons, welche ich in JPanels zusammengefasst habe. Für die Panels verwende ich GridLayout. Das Problem ist, dass wenn man die Größe des internen Frames verändert auch die Buttons größer und kleiner werden. Das ergibt doch absolut keinen Sinn, wer will bitteschön 400x300px große Buttons?! Nun will ich verhindern, dass die Größe der Buttons mit dem JInternalFrame verändert wird, sprich die Größe so bleibt, egal ob die Größe des Frames verändert wird. Ich habe es schon mit Befehlen wie
Code:
panel.setSize(panel.getPrefferedSize());
Code:
panel.setMaxmimumSize(panel.getPrefferedSize());
Folgender Programmcode:
Code:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
public class MainMenu extends JInternalFrame {
protected MainWindow mainWindow;
public MainMenu(MainWindow mainWindow) {
super("Hauptmenü", true, true, true, true);
this.mainWindow = mainWindow;
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLayout(new BorderLayout(10, 20));
JPanel toolsPanel = new JPanel();
toolsPanel.setLayout(new GridLayout(0, 1));
toolsPanel.setBorder(BorderFactory
.createTitledBorder("Assistenten und Werkzeuge"));
toolsPanel.add(new JButton(mainWindow.new PreferencesAction()));
toolsPanel.add(new JButton(mainWindow.new QuitAction()));
add(toolsPanel, BorderLayout.CENTER);
pack();
setVisible(true);
}
}
Vielen Dank für jede Hilfe!
Gruß,
Jan.