~Java4Beginners~
~Java4Beginners~

Tipps und Tricks

Bei Menüeinträgen müssen wir beachten, dass z. B. ein Menüeintrag "Speichern" nur anwendebar ist, wenn auch etwas geöffnet ist, was gespeichert wird. Oder ein Menüpunkt Bild einfügen, macht nur Sinn, wenn auch etwas geöffnet ist, worin ein Bild eingefügt wird.

setEnabled()

Für unsere JMenu und JMnenuItems haben wir die Methode setEnabled() um den Menüpunkt entweder auswählbar zu machen, oder nicht.

        jm_bearbeiten = new JMenu("Bearbeiten");
        jm_bearbeiten.setMnemonic('B');  
        jm_bearbeiten.setToolTipText("Bilder und Vorbemerkung bearbeiten");
        jm_bearbeiten.setEnabled(false);
        jmi_bearbeiten_bild = new JMenuItem("Bild einfügen",'b');
        jmi_bearbeiten_bild.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, KeyEvent.CTRL_MASK));
        jmi_bearbeiten_bild.addActionListener(this);
        jmi_bearbeiten_vorbemerkung = new JMenuItem("Vorbemerkung bearbeiten",'V');
        jmi_bearbeiten_vorbemerkung.addActionListener(this);
        jm_bearbeiten.add(jmi_bearbeiten_bild);
        jm_bearbeiten.add(jmi_bearbeiten_vorbemerkung);
In diesem Code-Ausschnitt wurde mit jm_bearbeiten.setEnabled(false); dafür gesorgt, dass der Menüpunkt Bearbeiten nicht auswählbar ist. Der Tooltiptext wird allerdings trotzdem angezeigt. Dies ist auch sinnvoll, damit der Benutzer weis, was sich hinter diesem Menüpunkt verbirgt.

Wir müssen im weiteren Verlauf allerdings dafür sorgen, dass wir auf den Menüpunkt zugriff bekommen, so bald es sinnvoll ist.

        //Datei öffnen
        if (e.getSource() == jmi_datei_oeffnen)
        {
            // Datei öffnen, wenn Datei offen dann
            jm_bearbeiten.setEnabled(true);
        }
Dieses Beispiel zeigte den Kniff, wenn wir ein kompletten JMenu mit setEnabled(false) nicht zur Berbeitung frei geben. Im nächsten Fall wird gleiche Vorgehensweise verwendet, allerdings nun auf JMenuItems.

Es macht durchaus Sinn, die Menüpunkte "Speichern" und "Speichern unter" auszublenden, während keine Datei geöffnet ist. Alle weiteren Menüpunkte des Menübaumes "Datei" stehen allerdings zur Verfügung. Dieses erreichen wir, indem wir die einzelnen JMenuItems mit setEnabled(false) bearbeiten.

        jm_datei = new JMenu("Datei");
        jm_datei.setMnemonic('D');
        jmi_datei_oeffnen = new JMenuItem("Öffnen",'f');
        jmi_datei_oeffnen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK));
        jmi_datei_oeffnen.addActionListener(this);
        jmi_datei_speichern = new JMenuItem("Speichern",'s');
        jmi_datei_speichern.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK));
        jmi_datei_speichern.addActionListener(this);
        jmi_datei_speichern.setEnabled(false);
        jmi_datei_speichernUnter = new JMenuItem("Speichern unter",'u');
        jmi_datei_speichernUnter.setAccelerator(KeyStroke.getKeyStroke("F12"));
        jmi_datei_speichernUnter.setEnabled(false);
        jmi_datei_beenden = new JMenuItem("Beenden",'B');
        jmi_datei_beenden.addActionListener(this);
nach oben Java4Beginners -- Seitenversion 1.01 -- Stand: 2017-05-01