Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


8.5.6

Menüs



Menüs bestehen bei Swing aus drei Teilen: JMenuBar, JMenu und JMenuItem (mit seinen abgeleiteten Klassen JCheckBoxMenuItem und JRadioBoxMenuItem).

Der Einstiegspunkt ist hierbei die JMenuBar, in der vertikal aufklappende JMenus integriert werden. In den JMenu können dann entweder wiederum Untermenüs (JMenu-Exemplare) bzw. JMenuItems integriert sein.

Beispiel

  JFrame f = new JFrame();
  JMenuBar menuBar = new JMenuBar();
  f.setJMenuBar(menuBar);
     
  JMenu datei = new JMenu("Datei");
  menuBar.add(datei);
  menuBar.add(new JMenu("Bearbeiten"));
  menuBar.add(new JMenu("Extra"));

  // Datei-Menü aufbauen
  datei.add(new AbstractAction("Neu", 
     new ImageIcon(getClass().getResource("t1.gif"))) { 
        public void actionPerformed(ActionEvent e) {
           // Etwas Sinnvolles tun
        } 
  });
  datei.add(new AbstractAction("öffnen", 
     new ImageIcon(getClass().getResource("t2.gif"))) { 
        public void actionPerformed(ActionEvent e) {
           // Etwas Sinnvolles tun
        } 
  });
  datei.add(new AbstractAction("Speichern", 
     new ImageIcon(getClass().getResource("t3.gif"))) { 
        public void actionPerformed(ActionEvent e) {
           // Etwas Sinnvolles tun
        } });
  // Separator einfügen
  datei.addSeparator();

  // Untermenü mit Checkboxen
  JMenu voreinstellungen = new JMenu("Voreinstellungen");
  // Als Untermenü in "Datei"
  datei.add (voreinstellungen);
  voreinstellungen.add (
    new JCheckBoxMenuItem("Schnellspeichern"));
  // Vorselektiert
  voreinstellungen.add (
     new JCheckBoxMenuItem("Warnungen anzeigen", true));

  // Unter-Untermenü mit Radiobuttons
  JMenu anzeige = new JMenu("Anzeige");
  voreinstellungen.add(anzeige);
  // Radiobuttons gruppieren über ButtonGroup
  ButtonGroup group = new ButtonGroup();
  // Vorselektiert
  JRadioButtonMenuItem rbmi = 
     new JRadioButtonMenuItem("Normal", true);
  group.add(rbmi);
  anzeige.add(rbmi);
  rbmi = new JRadioButtonMenuItem("Layout", false);
  group.add(rbmi);
  anzeige.add(rbmi);
  rbmi = new JRadioButtonMenuItem("Voransicht", false);
  group.add(rbmi);
  anzeige.add(rbmi);

JMenuBar

Abbildung 8.22: JMenuBar mit mehreren JMenus
Abbildung 8.22

Um die Menüleiste einem JFrame oder einem JInternalFrame zuzuordnen, muss die Methode setJMenuBar(JMenuBar menuBar) aufgerufen werden.

Einer Menüleiste werden dann die vertikalen Menüs (JMenu) zugeordnet. Dabei ist zu beachten, dass noch in der Java Version 1.4 die Methode setHelpMenu(JMenu menu) nicht implementiert ist - es erscheint bei der Verwendung eine entsprechende Exception.

Um ein Untermenü zu erstellen, können JMenus ineinandergeschachtelt werden.

JMenuItem

Abbildung 8.23: JMenuItem
Abbildung 8.23

Ein JMenuItem wird in ein JMenu integriert und kann vom Benutzer ausgewählt werden. Es verhält sich sonst wie ein normaler JButton.

JCheckBoxMenuItem

Abbildung 8.24: JCheckBoxMenuItem
Abbildung 8.24

Ein JCheckBoxMenuItem ist die Verbindung von JMenuItem und JCheckBox. Es kann also den Status selektiert oder nicht selektiert besitzen.

JRadioButtonMenuItem

Ein JRadioBoxMenuItem ist die Verbindung von JMenuItem und JRadioBox. Um mehrere Optionen zusammenzufassen, so dass nur eine von ihnen zu einer Zeit selektiert sein kann, benutzt man wie bei einer JRadioBox eine ButtonGroup.

Abbildung 8.25: JRadioButtonMenuItem
Abbildung 8.25


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.