Java Menüs und Dialoge

Willemers Informatik-Ecke

Moderne Programme besitzen eine Menüleiste. Die passende Swing-Klasse heißt JMenuBar. Ein Objekt dieser Klasse wird durch die Methode setMenuBar in einen JFrame gehängt.

In dieser Leiste sind mehrere Menüs eingetragen. Das erste ist typischerweise das Datei-Menü und das letzte das Hilfe-Menü. Für diese Menüs verwendet Swing die Klasse JMenu.

Jedes der Menüs enthält Menüpunkte, die durch die Swing-Klasse JMenuItem abgebildet werden.

Ein JMenuItem unterscheidet sich nur geringfügig von einem normalen Button.

import javax.swing.JFrame;
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.*;

public class Menue extends JFrame implements ActionListener {

    JMenuItem dateiOeffnen, dateiSpeichern, dateiSpeichernUnter, dateiQuit;
    JMenuItem hilfeUeber;
    JLabel labName;

    Menue() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridLayout(2, 1));
        add(new JLabel("Hier könnte Ihre Werbung stehen!"));
        labName = new JLabel("---nichts---");
        add(labName);

        JMenuBar leiste = new JMenuBar();
        JMenu datei = new JMenu("Datei");
        leiste.add(datei);
        dateiOeffnen = new JMenuItem("Öffnen...");
        datei.add(dateiOeffnen); dateiOeffnen.addActionListener(this);
        dateiSpeichern = new JMenuItem("Speichern");
        datei.add(dateiSpeichern); dateiSpeichern.addActionListener(this);
        dateiSpeichernUnter = new JMenuItem("Speichern unter...");
        datei.add(dateiSpeichernUnter); dateiSpeichernUnter.addActionListener(this);
        dateiQuit = new JMenuItem("Ende");
        datei.add(dateiQuit); dateiQuit.addActionListener(this);

        JMenu hilfe = new JMenu("Hilfe");
        leiste.add(hilfe);
        hilfeUeber = new JMenuItem("Ende");
        hilfe.add(hilfeUeber); hilfeUeber.addActionListener(this);

        setJMenuBar(leiste);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        new Menue();
    }

    @Override public void actionPerformed(ActionEvent ev) {
        if (ev.getSource()==dateiOeffnen) {
            JFileChooser auswahl = new JFileChooser();
            if (auswahl.showOpenDialog(this)==JFileChooser.APPROVE_OPTION) {
                labName.setText(auswahl.getSelectedFile().getName());
            }
        } else if (ev.getSource()==dateiSpeichern) {
        } else if (ev.getSource()==dateiSpeichernUnter) {
            JFileChooser auswahl = new JFileChooser();
            if (auswahl.showSaveDialog(this)==JFileChooser.APPROVE_OPTION) {
                labName.setText(auswahl.getSelectedFile().getName());
            }
        } else if (ev.getSource()==dateiQuit) {
            System.exit(0);
        } else if (ev.getSource()==hilfeUeber) {
            JOptionPane.showMessageDialog(null, "Eine Menüdemonstration");
        } else {
        } else {
            JOptionPane.showMessageDialog(null, "Was ist das?");
        }
    }
}


Homepage - Java (C) Copyright 2011 Arnold Willemer