Ich versuche, das Java Swing JMenuBar
Element richtig zu funktionieren. Meine App hat mehrere Menüelemente. Das Problem liegt vor, wenn der Benutzer die Größe des Fensters kleiner als die Größe der Menüelemente ändert. Was passiert, ist, dass die Menüelemente komprimiert werden und sich gegenseitig überlappen, anstatt mehr Zeilen zu verwenden. Gibt es eine Möglichkeit, die JMenuBar
JMenu
Elemente zu brechen, wenn nicht genügend Platz vorhanden ist?SWING JMenuBar JMenu-Elemente werden komprimiert, anstatt die Linie zu unterbrechen. Wie man dieses Verhalten behebt
ExampleCode:
frame = new JFrame();
frame.setBounds(100, 100, 722, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
frame.getContentPane().add(menuBar, BorderLayout.NORTH);
JMenu mnNewMenu = new JMenu("New menu");
menuBar.add(mnNewMenu);
JMenu mnNewMenu_1 = new JMenu("New menu");
menuBar.add(mnNewMenu_1);
JMenu menu = new JMenu("New menu");
menuBar.add(menu);
JMenu menu_1 = new JMenu("New menu");
menuBar.add(menu_1);
JMenu menu_2 = new JMenu("New menu");
menuBar.add(menu_2);
JMenu menu_3 = new JMenu("New menu");
menuBar.add(menu_3);
JPanel split = new JPanel();
frame.getContentPane().add(split, BorderLayout.CENTER);
split.setLayout(new BorderLayout(0, 0));
JPanel panel = new JPanel();
JButton btnNewButton = new JButton("New button");
JButton btnNewButton_1 = new JButton("New button");
JButton btnNewButton_2 = new JButton("New button");
split.add(panel, BorderLayout.CENTER);
JLabel lblTextContentBla = new JLabel("Text content bla bla bla");
panel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
panel.add(btnNewButton);
panel.add(btnNewButton_1);
panel.add(btnNewButton_2);
panel.add(lblTextContentBla);
Screenshots:
- Erster Screenshot ist das Beispiel Anfangszustand.
- zweiter Screenshot zeigt den unerwünschten Kompressionseffekt.
- Lastpicture zeigt ein Beispiel dafür, wie es aussehen sollte.
(PD:. Ist Stackoverflow gebrochen Wenn ich Bilder posten, sagt es, dass es unformatiert Code gefunden hat die Links als Code ohne Previews zu veröffentlichen, damit es funktioniert .. ??)