Event Handling Über JMenuBar die diversen Panels anzeigen

kaiolischar

Mitglied
Hallo zusammen

Ich habe folgendes Problem:
Ich habe ein JFrame mit einer JMenuBar und einem JPanel, in dass ich jeweils JPanels aus anderen Klassen reinladen, jenachdem, welches Item des Menüs angeklickt wird.

Im Actionlistener habe ich dann bei den jeweiligen Items einen Actionlistener hinterlegt

cardDelete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mainPanel.remove(welcomeScreen);
DeleteCards panelDeleteCards = new DeleteCards();
mainPanel.add(panelDeleteCards);
mainPanel.revalidate(); // Repaint here!! Removing these calls
mainPanel.repaint(); // demonstrates the problem you are having.
}
});
hinterlegt.
Das funktioniert auch, wenn ich das aktuelle Panel schliesse (mainPanel.remove(welcomeScreen);).
Jedoch habe ich das Problem, dass es ja sehr viele Möglichkeiten gibt, welches Panel gerade geöffnet sein kann, da das Menü 12 Items hat.

Meine Frage:
Wie kann ich abfragen, welches Panel gerade mainPanel geöffnet ist und es dann in eine (globale) Variable schreiben, z.b. actualPanel, damit ich dann in den einzelnen Actionlistenern der Items schreiben kann:
mainPanel.remove(actualPanel);

Sorry, bin absoluter Neuling in Sachen Java.

Danke für ein Tipp, wie ich das handhaben kann.

Gerne auch als Methode, wo ich alle Screens lade und dann das Panel, welches ich per Item anwähle in den Vordergrund rückt.
 

Robat

Top Contributor
An sich musst du doch nur eine globale Variable deklarieren und sie mit dem Panel initialisieren, welches als erstes angezeigt wird.
Immer wenn dann ein neues Panel geladen werden soll überschreibst du diese Variable einfach - somit musst du auch nichts abfragen.

Übrigens .. , wenn du mit dem CardLayout arbeiten würdest hättest du die Probleme mit dem repaint / den Abfragen gar nicht.
Java:
frame = new JFrame();
// frame initialisieren...

JMenuBar bar = new JMenuBar();
JMenu menu = ...

JMenuItem item1 = new JMenuItem("Panel 1");
item1.setActionCommand("panel1");
item1.addActionListener(this);
menu.add(item1);

// weitere MenuItems nach dem selben Prinzip anlegen
JMenuItem i2 = ...
JMenuItem i3 = ...

bar.add(menu);
frame.add(bar, BorderLayout.NORTH);

// verschiedene Panels anlegen...
panel1.setBackground(Color.RED);
panel2.setBackground(Color.BLACK);
panel3.setBackground(Color.BLUE);

// contentPane ist in dem Fall das JPanel, auf dem die verschiedenen JPanels
// getauscht werden
contentPane = new JPanel(new CardLayout());
contentPane.add("panel1", panel1); // WICHTIG: Selber String wie bei deinem ActionCommand
// analog die anderen Panels adden

frame.add(contentPane);
frame.setVisible(true);

Den ActionListener kannst du dann ganz einfach mit 2 Zeilen Code programmieren:
Java:
@Override
public void actionPerformed( ActionEvent e ) {
    CardLayout cl = (CardLayout) contentPane.getLayout();
    cl.show(contentPane, e.getActionCommand());
}
 

kaiolischar

Mitglied
Hallo Robat

vielen Dank für deine Ausführung. Habe es nun versucht, aber leider funktioniert es nicht.
Mein MainFrame wo ich das Menü drin habe, sieht wie folgt aus.

Java:
package gui;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.Box;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

import gui.Welcome;

import gui.Learning;

import gui.CreateLangPack;
import gui.DeleteLangPack;

import gui.CreateCards;
import gui.DeleteCards;


public class MainScreen extends JFrame implements ActionListener {
   
    //====================================================================================
    // Abfrage des Users
    //====================================================================================
    String userFirstName                            = "Kai";
    String userSurName                                = "Olischar";
    String userIsteingeloggt                        = "1";
   
    //====================================================================================
    // MainPanel, dass alle anderen Panels beinhaltet
    //====================================================================================
    JPanel mainPanel                                 = new JPanel();
    //====================================================================================
    // Ressourcen für Icons des Menüs
    //====================================================================================
    ImageIcon iconNew                                 = new ImageIcon("new.png");
    ImageIcon iconOpen                                 = new ImageIcon("open.png");
    ImageIcon iconSave                                 = new ImageIcon("save.png");
    ImageIcon iconExit                                 = new ImageIcon("exit.png");
   
    //====================================================================================
    // Panel für das Menu
    //====================================================================================   
    JPanel menuPanel                                 = new JPanel();
   
        //====================================================================================
        // Menubar
        //====================================================================================
        JMenuBar menubar                             = new JMenuBar();
       
            //====================================================================================
            // Menuüpunkt erste Ebene
            //====================================================================================
       
            JMenu learningMenu                         = new JMenu("LERNEN");
            JMenu langPackMenu                         = new JMenu("SPRACHPAKETE");
            JMenu cardMenu                             = new JMenu("KARTEN");
            JMenu valuationMenu                     = new JMenu("AUSWERTUNGEN");
            JMenu userMenu                             = new JMenu("HALLO < " + userFirstName + " " + userSurName + " > ");
           
                //====================================================================================
                // Menuüpunkt zweite Ebene
                //====================================================================================
               
                // Unterpunkte Lernen
                //JMenuItem learningOverview             = new JMenuItem(new MenuItemAction("ÜBERSICHT", iconNew,null));
                JMenuItem learningStart             = new JMenuItem("LERNEN STARTEN", iconOpen);
                JMenuItem learningExit                 = new JMenuItem("PROGRAMM SCHLIESSEN", iconExit);
           
                // Unterpunkte Sprachpakete
                //JMenuItem langPackOverview            = new JMenuItem(new MenuItemAction("ÜBERSICHT", iconNew, null));
                JMenuItem langPackNew                 = new JMenuItem("SPRACHPAKET ERSTELLEN", iconOpen);
                JMenuItem langPackDelete            = new JMenuItem("SPRACHPAKET LÖSCHEN", iconSave);
             
                // Unterpunkte Karten
                //JMenuItem cardOverview                = new JMenuItem(new MenuItemAction("ÜBERSICHT", iconNew, null));
                JMenuItem cardNew                     = new JMenuItem("KARTE ERSTELLEN", iconOpen);
                JMenuItem cardEdit                    = new JMenuItem("KARTE BEARBEITEN", iconOpen);
                JMenuItem cardDelete                = new JMenuItem("KARTE LÖSCHEN", iconSave);
             
                // Unterpunkte Auswertung
                JMenuItem valuationTotal            = new JMenuItem("AUSWERTUNG GESAMT", iconNew);
                JMenuItem valuationBaPack            = new JMenuItem("AUSWERTUNG NACH SPRACHPAKET", iconOpen);
               
                // Unterpunkte Benutzer           
                JMenuItem userDatas                    = new JMenuItem("MEINE DATEN", iconNew);
                JMenuItem userLogOff                = new JMenuItem("ABMELDEN", iconOpen);
           
        //====================================================================================
        // Externe Panels werden geladen - müssen als import noch hinzugefügt werden !!!
        //====================================================================================

            Welcome welcomeScreen                     = new Welcome();
    /**
    * 
    */
    private static final long serialVersionUID = 1L;
    //====================================================================================
    // hier wird das wechselnde MainPanel erstellt und mit den vorhandene Screens gefüllt
    //====================================================================================
    private void createMainPanel() {
          this.add(mainPanel);   
        //====================================================================================
        // Hier kommen die gesamtem externen Panels rein und werden auf visible false gesetzt
          // damit diese bei Bedarf mit dem Action Listener auf true gestetzt werden
        //====================================================================================
        mainPanel.add(welcomeScreen);
        welcomeScreen.setVisible(true);
    }
    public MainScreen() {
        createAndShowGUI();
    }

    //====================================================================================
    // Diese Classe ist zuständig für die Formatierung des kompletten Frames
    // hier werden alle Methoden und Konstruktoren der untergeordneten Classen aufgerufen
    // und dem Frame hinzugefügt.
    //====================================================================================
    private void createAndShowGUI() {
        createMenuBar();
        createMainPanel();
        setTitle("WILLKOMMEN BEIM VOKABELTRAINER");
        setSize(1024, 768);
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE); // Hier anpassen, dass noch gespeichert wirdm bevor geschlossen wird. Dazu einen eigene Methode !!!
     }
   
    //====================================================================================
    // Hier erstellen wir das Menu
    //====================================================================================

    private void createMenuBar() {

        this.add(menuPanel);
         
        //====================================================================================
        // Menuüpunkt Lernen mit Untergeordneten MenuItems
        //====================================================================================
        learningMenu.setMnemonic(KeyEvent.VK_L);       
       
        learningExit.setMnemonic(KeyEvent.VK_E);
        learningExit.setToolTipText("SPEICHERN UND PROGRAMM SCHLIESSEN");
        learningExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));

        learningExit.addActionListener((ActionEvent event) -> {
            System.exit(0);
        });

        //learningMenu.add(learningOverview);
        learningMenu.add(learningStart);
        learningStart.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                //    mainPanel.remove(welcomeScreen);
                    Learning panelLearning = new Learning();
                    mainPanel.add(panelLearning);
                    mainPanel.revalidate(); // Repaint here!! Removing these calls
                    mainPanel.repaint(); // demonstrates the problem you are having.
                }
            });
        learningMenu.addSeparator();
        learningMenu.add(learningExit);
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(learningMenu);
       
        //====================================================================================
        // Menuüpunkt Sprachpakete mit Untergeordneten MenuItems
        //====================================================================================
        langPackMenu.setMnemonic(KeyEvent.VK_S);

        //langPackMenu.add(langPackOverview);
        langPackMenu.add(langPackNew);
            langPackNew.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                //    mainPanel.remove(welcomeScreen);
                    CreateLangPack panelCreateLangPack = new CreateLangPack();
                    mainPanel.add(panelCreateLangPack);
                    mainPanel.revalidate(); // Repaint here!! Removing these calls
                    mainPanel.repaint(); // demonstrates the problem you are having.
                }
            });
       
        langPackMenu.add(langPackDelete);
            langPackDelete.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                //    mainPanel.remove(welcomeScreen);
                    DeleteLangPack panelDeleteLangPack = new DeleteLangPack();
                    mainPanel.add(panelDeleteLangPack);
                    mainPanel.revalidate(); // Repaint here!! Removing these calls
                    mainPanel.repaint(); // demonstrates the problem you are having.
                }
            });
       
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(langPackMenu);

        //====================================================================================
        // Menuüpunkt Karten mit Untergeordneten MenuItems
        //====================================================================================
        cardMenu.setMnemonic(KeyEvent.VK_K);

        //cardMenu.add(cardOverview);
        cardMenu.add(cardNew);
            cardNew.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                //    mainPanel.remove(welcomeScreen);
                    CreateCards panelCreatCards = new CreateCards();
                    mainPanel.add(panelCreatCards);
                    mainPanel.revalidate(); // Repaint here!! Removing these calls
                    mainPanel.repaint(); // demonstrates the problem you are having.
                }
            });
        cardMenu.add(cardEdit);
        cardMenu.add(cardDelete);
        cardDelete.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                //    mainPanel.remove(welcomeScreen);
                    DeleteCards panelDeleteCards = new DeleteCards();
                    mainPanel.add(panelDeleteCards);
                    mainPanel.revalidate(); // Repaint here!! Removing these calls
                    mainPanel.repaint(); // demonstrates the problem you are having.
                }
            });
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(cardMenu);
       
        //====================================================================================
        // Menuüpunkt Auswertung mit Untergeordneten MenuItems
        //====================================================================================
        valuationMenu.setMnemonic(KeyEvent.VK_A);

        valuationMenu.add(valuationTotal);
        valuationMenu.add(valuationBaPack);
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(valuationMenu);

        //====================================================================================
        // Menuüpunkt User mit Untergeordneten MenuItems
        //====================================================================================
        userMenu.setMnemonic(KeyEvent.VK_U);
       
        userMenu.add(userDatas);
        userMenu.add(userLogOff);
        userMenu.addSeparator();
        //userMenu.add(userDeleteAccount);
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(Box.createHorizontalGlue());
        menubar.add(userMenu);
       
        //====================================================================================
        // hier wird das Menu initialisiert
        //====================================================================================
       
        setJMenuBar(menubar);
    }
   

   
//    private class MenuItemAction extends AbstractAction {
//
//        private static final long serialVersionUID = 1L;
//
//        public MenuItemAction(String text, ImageIcon icon, Integer mnemonic) {
//            super(text);
//            putValue(SMALL_ICON, icon);
//            putValue(MNEMONIC_KEY, mnemonic);
//        }
//
//        @Override
//        public void actionPerformed(ActionEvent e) {
//            System.out.println(e.getActionCommand());
//        }
//    }

    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
            MainScreen mainScreen = new MainScreen();
            mainScreen.setVisible(true);
        });
    }

    @Override
    public void actionPerformed(ActionEvent e) {
       
       
    }


}


meine JPanels (aus anderen Classen) heissen:
CreateCards.java => Item => Karte erstellen
CreateLangPack.java => Item => Sprachpaket erstellen
DeleteCards.java => Item => Karte löschen
u.s.w. und befinden sich im gleichen Package gui


Sofern mir jemand dabei helfen könnte, dass ich das zum Laufen bekomme, Donate ich sehr sehr gerne

Gruss Kai
 

kaiolischar

Mitglied
Hallo
Entschuldige bitte die späte Antwort.
Ich habe nun einmal den Code angepasst, so wie ich ihn verstanden habe.

Ich haben nun alle Items wie beschrieben, angepasst.
Dann habe ich dem Item learningStart den ActionListener hinzugefügt, um das Panel Learning zu laden.

Hier die MainFrame Class

Java:
package gui;

import java.awt.CardLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.Box;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

import gui.*;




public class MainScreen2 extends JFrame implements ActionListener {
   
    //====================================================================================
    // Abfrage des Users
    //====================================================================================
    String userFirstName                            = "Kai";
    String userSurName                                = "Olischar";
    String userIsteingeloggt                        = "1";
   
    //====================================================================================
    // MainPanel, dass alle anderen Panels beinhaltet
    //====================================================================================
    JPanel mainPanel                                 = new JPanel();
    //====================================================================================
    // Ressourcen für Icons des Menüs
    //====================================================================================
    ImageIcon iconNew                                 = new ImageIcon("new.png");
    ImageIcon iconOpen                                 = new ImageIcon("open.png");
    ImageIcon iconSave                                 = new ImageIcon("save.png");
    ImageIcon iconExit                                 = new ImageIcon("exit.png");
   
    //====================================================================================
    // Panel für das Menu
    //====================================================================================   
    JPanel menuPanel                                 = new JPanel();
        //====================================================================================
        // Menubar
        //====================================================================================
        JMenuBar menubar                             = new JMenuBar();
            //====================================================================================
            // Menuüpunkt erste Ebene
            //====================================================================================
            JMenu learningMenu                         = new JMenu("LERNEN");
            JMenu langPackMenu                         = new JMenu("SPRACHPAKETE");
            JMenu cardMenu                             = new JMenu("KARTEN");
            JMenu valuationMenu                     = new JMenu("AUSWERTUNGEN");
            JMenu userMenu                             = new JMenu("HALLO < " + userFirstName + " " + userSurName + " > ");
                //====================================================================================
                // Menuüpunkt zweite Ebene
                //====================================================================================
                // Unterpunkte Lernen
                JMenuItem learningStart             = new JMenuItem("LERNEN STARTEN", iconOpen);
                JMenuItem learningExit                 = new JMenuItem("PROGRAMM SCHLIESSEN", iconExit);
                // Unterpunkte Sprachpakete
                JMenuItem langPackNew                 = new JMenuItem("SPRACHPAKET ERSTELLEN", iconOpen);
                JMenuItem langPackDelete            = new JMenuItem("SPRACHPAKET LÖSCHEN", iconSave);
                // Unterpunkte Karten
                JMenuItem cardNew                     = new JMenuItem("KARTE ERSTELLEN", iconOpen);
                JMenuItem cardEdit                    = new JMenuItem("KARTE BEARBEITEN", iconOpen);
                JMenuItem cardDelete                = new JMenuItem("KARTE LÖSCHEN", iconSave);
                // Unterpunkte Auswertung
                JMenuItem valuationTotal            = new JMenuItem("AUSWERTUNG GESAMT", iconNew);
                JMenuItem valuationPerPack            = new JMenuItem("AUSWERTUNG NACH SPRACHPAKET", iconOpen);
                // Unterpunkte Benutzer           
                JMenuItem userDatas                    = new JMenuItem("MEINE DATEN", iconNew);
                JMenuItem userLogOff                = new JMenuItem("ABMELDEN", iconOpen);   
        //====================================================================================
        // Externe Panels werden geladen - müssen als import noch hinzugefügt werden !!!
        //====================================================================================
            Welcome welcomeScreen                     = new Welcome();           
            Learning learningScreen                 = new Learning();           
            CreateLangPack createLangPack             = new CreateLangPack();
            DeleteLangPack deleteLangPack             = new DeleteLangPack();           
            CreateCards createCards                 = new CreateCards();
            DeleteCards deleteCards                 = new DeleteCards();   
    /**
    * 
    */
    private static final long serialVersionUID = 1L;
    //====================================================================================
    // hier wird das wechselnde MainPanel erstellt und mit den vorhandene Screens gefüllt
    //====================================================================================
    private void createMainPanel() {
          this.add(mainPanel);   
        //====================================================================================
        // Hier kommen die gesamtem externen Panels rein und werden auf visible false gesetzt
          // damit diese bei Bedarf mit dem Action Listener auf true gestetzt werden
        //====================================================================================
        mainPanel.add(welcomeScreen);
        welcomeScreen.setVisible(true);
    }
    public MainScreen2() {
        createAndShowGUI();
    }
    //====================================================================================
    // Diese Classe ist zuständig für die Formatierung des kompletten Frames
    // hier werden alle Methoden und Konstruktoren der untergeordneten Classen aufgerufen
    // und dem Frame hinzugefügt.
    //====================================================================================
    private void createAndShowGUI() {
        createMenuBar();
        createMainPanel();
        setTitle("WILLKOMMEN BEIM VOKABELTRAINER");
        setSize(1024, 768);
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE); // Hier anpassen, dass noch gespeichert wirdm bevor geschlossen wird. Dazu einen eigene Methode !!!
     }
    //====================================================================================
    // Hier erstellen wir das Menu
    //====================================================================================
    private void createMenuBar() {
        this.add(menuPanel);       
        //====================================================================================
        // Menuüpunkt Lernen mit Untergeordneten MenuItems
        //====================================================================================
        learningMenu.setMnemonic(KeyEvent.VK_L);       
       
        learningExit.setMnemonic(KeyEvent.VK_E);
        learningExit.setToolTipText("SPEICHERN UND PROGRAMM SCHLIESSEN");
        learningExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));

        learningExit.addActionListener((ActionEvent event) -> {
            System.exit(0);
        });
        //learningMenu.add(learningOverview);
        learningStart.setActionCommand("LERNEN STARTEN");
        learningStart.addActionListener(this);

        learningMenu.add(learningStart);
        learningStart.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                Learning learning = (Learning) mainPanel.getLayout();
                learning.show(mainPanel, e.getActionCommand());
               
            }
        });

        learningMenu.addSeparator();
        learningMenu.add(learningExit);
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(learningMenu);       
        //====================================================================================
        // Menuüpunkt Sprachpakete mit Untergeordneten MenuItems
        //====================================================================================
        langPackMenu.setMnemonic(KeyEvent.VK_S);
        //langPackMenu.add(langPackOverview);
        langPackNew.setActionCommand("SPRACHPAKET ERSTELLEN");
        langPackNew.addActionListener(this);
        langPackMenu.add(langPackNew);
       
        langPackDelete.setActionCommand("SPRACHPAKET LÖSCHEN");
        langPackDelete.addActionListener(this);
        langPackMenu.add(langPackDelete);       
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(langPackMenu);
        //====================================================================================
        // Menuüpunkt Karten mit Untergeordneten MenuItems
        //====================================================================================
        cardMenu.setMnemonic(KeyEvent.VK_K);

        cardNew.setActionCommand("KARTE ERSTELLEN");
        cardNew.addActionListener(this);
        cardMenu.add(cardNew);
       
        cardEdit.setActionCommand("KARTE BEARBEITEN");
        cardEdit.addActionListener(this);
        cardMenu.add(cardEdit);
       
        cardDelete.setActionCommand("KARTE LÖSCHEN");
        cardDelete.addActionListener(this);
        cardMenu.add(cardDelete); 
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(cardMenu);       
        //====================================================================================
        // Menuüpunkt Auswertung mit Untergeordneten MenuItems
        //====================================================================================
        valuationMenu.setMnemonic(KeyEvent.VK_A);

        valuationTotal.setActionCommand("AUSWERTUNG GESAMT");
        valuationTotal.addActionListener(this);
        valuationMenu.add(valuationTotal);
       
        valuationPerPack.setActionCommand("AUSWERTUNG NACH SPRACHPAKET");
        valuationPerPack.addActionListener(this);
        valuationMenu.add(valuationPerPack);
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(valuationMenu);

        //====================================================================================
        // Menuüpunkt User mit Untergeordneten MenuItems
        //====================================================================================
        userMenu.setMnemonic(KeyEvent.VK_U);
       
        userDatas.setActionCommand("MEINE DATEN");
        userDatas.addActionListener(this);
        userMenu.add(userDatas);
       
        userLogOff.setActionCommand("AUSWERTUNG NACH SPRACHPAKET");
        userLogOff.addActionListener(this);
        userMenu.add(userLogOff);
        userMenu.addSeparator();
        // HIER WIRD DER MENUPUNKT DEM MENU HINZUGEFÜGT
        menubar.add(Box.createHorizontalGlue());
        menubar.add(userMenu);
       
        //====================================================================================
        // hier wird das Menu initialisiert
        //====================================================================================
       
        setJMenuBar(menubar);
    }
   

   
//    private class MenuItemAction extends AbstractAction {
//
//        private static final long serialVersionUID = 1L;
//
//        public MenuItemAction(String text, ImageIcon icon, Integer mnemonic) {
//            super(text);
//            putValue(SMALL_ICON, icon);
//            putValue(MNEMONIC_KEY, mnemonic);
//        }
//
//        @Override
//        public void actionPerformed(ActionEvent e) {
//            System.out.println(e.getActionCommand());
//        }
//    }

    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
            MainScreen2 mainScreen = new MainScreen2();
            mainScreen.setVisible(true);
        });
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
       
    }




}

Leider findet der Wechsel vom WelcomeScreen (welcher zu Anfang geladen wird) nicht hin und Eclipse schmeisst folgendes:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.FlowLayout cannot be cast to gui.Learning
    at gui.MainScreen2$1.actionPerformed(MainScreen2.java:147)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Über einen Tipp wäre ich echt dankbar.

Gruss Kai
 

Robat

Top Contributor
Ich glaube du hast das, was ich oben gesagt habe, noch nicht ganz verinnerlicht.
Vielleicht einfach noch mal Schritt für Schritt die Idee dahinter erklärt (nur die wesentlichen Dinge. Wie das JFrame erstellt wird / das Menu weißt du ja selber):

Das CardLayout ist ein LayoutManager (so wie FlowLayout, BorderLayout,..) und dient dazu einem Container (in dem Fall deinem JPanel) mehrere andere Container (deine austauschbaren JPanels) zuzuordnen und dann beliebig zwischen diesen hin und her zu wechseln.
Demnach brauchst du ein JPanel auf dem alle deine austauschbaren JPanels drauf kommen - nennen wir dieses JPanel contentPane und setzen wir das LayoutManager das CardLayout
Java:
JPanel contentPane = new JPanel(new CardLayout());

Als nächstes müssen wir die austauschbaren Panels deklarieren (was du in deinem Code ja schon gemacht hast) und sie zur contentPane hinzufügen. Dabei ist zu beachten, dass die wir hier die add-Methode mit den 2 Paramtern (String, Component) nehmen. JPanel#add(String name, Component comp) Der Name der Komponente sollte einzigartig sein da wir ihn später noch brauchen.
Java:
JPanel panelA = new JPanel();
contentPane.add("panelA", panelA);
JPanel panelB = new JPanel();
contentPane.add("panelB", panelB);
// eventuell weitere JPanels...

Als nächstes sind die JMenuItems an der Reihe. Wenn wir diese anlegen sind 2 Dinge wichtig:
  1. jedem MenuItem den selben ActionListener zuzuweisen (in dem Beispiel this, da die Klasse selbst den Listener implementiert)
  2. jedem MenuItem ein ActionCommand zuzuweisen. Das ActionCommand soll der Name des JPanels sein welches auf Knopfdruck angezeigt werden soll
Java:
JMenuItem menuItemPanelA = new JMenuItem("PanelA anzeigen");
menuItemPanelA.addActionListener(this);
menuItemPanelA.setActionCommand("panelA");
// menuItemPanelA zu menu adden...

JMenuItem menuItemPanelB = new JMenuItem("PanelB anzeigen");
menuItemPanelB.addActionListener(this);
menuItemPanelA.setActionCommand("panelB");
// menuItemPanelB zu menu adden...

Zu guter letzt müssen wir noch dem ActionListener schreiben, damit die JPanels auch gewechselt werden.
Dazu nutzen wir die show-Methode des CardLayouts und das Cardlayout was wir vorhin dem contentPane als LayoutManager gegeben haben.
Die CardLayout#show(Component container, String name) Methode bekommst als ersten Parameter den Container auf dem die Komponente gewechselt werden soll und als zweiten Parameter den Namen der Komponente die sichtbar werden soll. Wenn du dich erinnerst haben wir vorhin alle Komponenten dem Container hinzugefügt und einen passenden Namen vergeben.
Der Container ist in dem Fall unser contentPane. Der Name der Komponente ist das ActionCommand von dem MenuItem welches gedrückt wurde. (wir haben ja vorhin jedem MenuItem als ActionCommand den Namen vom passenden Panel gegeben).
Java:
@Override
public void actionPerformed(ActionEvent e) {
    CardLayout cl = (CardLayout) contentPane.getLayout();
    cl.show(contentPane, e.getActionCommand());
}

Vielleicht konnte ich dir so ja die Idee etwas näher bringen.
 

kaiolischar

Mitglied
Okay,

nach einigen try & errors habe ich es hinbekommen.
Für alle, die es gebrauchen können:


Java:
package gui;

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


import gui.Welcome;

import gui.Learning;

import gui.CreateLangPack;
import gui.DeleteLangPack;

import gui.CreateCards;
//import gui.EditCards;
import gui.DeleteCards;

//import gui.ValuatioanTotal;
//import gui.ValuatioanPerPack;

//import gui.Userdata;


import gui.CreateCards;
 
public class MainFrame extends JFrame { 
   
    /**
    * Hier entsteht das Hauptfenster der Anwendung
    * 
    * Dies ist mit einem CardLayout gestaltet, damit
    * die einwandfreie Funktion des Menus gewährleistet ist
    * 
    * Die einzelnen Panels werden aus den externen Classen des gui
    * Packages geladen
    * siehe hierzu die Imports => import gui.*;
    * 
    * @author kolis1
    * @param  userFirstName          Hier holen wir uns den Vorname aus der ArrayList<USER>
    * @param  userSurName             Hier holen wir uns den Nachname aus der ArrayList<USER>
    * @param  userIsteingeloggt    Hier holen wir uns den Status, ob der User eingeloggt ist, aus der ArrayList<USER>
    * @return     
    * @see         
    */
    private static final long serialVersionUID = 1L;
    //====================================================================================
    // Abfrage des Users = Variablen, die noch mit den ArrayLists verknüpft und ausgelesen werden müssen
    //====================================================================================
    String userFirstName                            = "Fred";
    String userSurName                              = "Büchse";
    String userIsteingeloggt                        = "1";
   
    //====================================================================================
    // Erstellen eines Containers für das Frame, in die die externen Panels geladen werden
    //====================================================================================
    Container mainPane;
    CardLayout layout;
   
    public MainFrame() { 
        //====================================================================================
        // superclass und das Layout des Frames/Containers
        //====================================================================================
        super("Vokabeltrainer");
        layout = new CardLayout();
        setLayout(layout);
       
        mainPane = this.getContentPane();
       
        Welcome start = new Welcome();
        mainPane.add("Lernen starten", start);
       
        Learning learningStart = new Learning();
        mainPane.add("Lernen starten", learningStart);
       
        CreateLangPack createLangPack = new CreateLangPack();
        mainPane.add("Sprachpaket erstellen", createLangPack);
       
        DeleteLangPack deleteLangPack = new DeleteLangPack();
        mainPane.add("Sprachpaket löschen", deleteLangPack);
       
        CreateCards createCards = new CreateCards();
        mainPane.add("Karte erstellen", createCards);
       
//        EditCards editCards = new EditCards();
//        mainPane.add("Karte bearbeiten", editCards);
       
        DeleteCards deleteCards = new DeleteCards();
        mainPane.add("Karte löschen", deleteCards);
       
//        TotalValuation totalValuation = new TotalValuation();
//        mainPane.add("Auswertung gesamt", totalValuation);
//       
//        PerPackValuation perPackValuation = new PerPackValuation();
//        mainPane.add("Auswertung per Sprachpaket", perPackValuation);
       
//        UserData userData = new UserData();
//        mainPane.add("Meine Daten", userData);
//       
       
        //====================================================================================
        // Konstruktor Menu
        //==================================================================================== 
        JMenuBar mainMenu                                 = new JMenuBar(); 
        //====================================================================================
        // Konstruktor Menu first-Level Lernen
        //==================================================================================== 
        JMenu learning                                     = new JMenu(); 
        JMenuItem startLearning                         = new JMenuItem(); 
        JMenuItem menuFileExit                             = new JMenuItem();   
         
        learning.setText("LERNEN"); 
        startLearning.setText("Lernen starten");   
        menuFileExit.setText("Programm schliessen");
       
        //====================================================================================
        // Konstruktor Menu first-Level Sprachpakete
        //====================================================================================
        JMenu langPack                                     = new JMenu(); 
        JMenuItem langPackCreate                         = new JMenuItem(); 
        JMenuItem langPackDelete                         = new JMenuItem(); 
       
        langPack.setText("Sprachpakete"); 
        langPackCreate.setText("Sprachpaket erstellen"); 
        langPackDelete.setText("Sprachpaket löschen"); 
       
        //====================================================================================
        // Konstruktor Menu first-Level Karten
        //====================================================================================
        JMenu cards                                     = new JMenu(); 
        JMenuItem cardsCreate                             = new JMenuItem(); 
        JMenuItem cardsEdit                             = new JMenuItem(); 
        JMenuItem cardsDelete                             = new JMenuItem();   
       
        cards.setText("Karten"); 
        cardsCreate.setText("Karte erstellen"); 
        cardsEdit.setText("Karte bearbeiten"); 
        cardsDelete.setText("Karte löschen"); 
       
        //====================================================================================
        // Auswertungen
        //====================================================================================
        JMenu valuation                                 = new JMenu(); 
        JMenuItem valuationTotal                         = new JMenuItem(); 
        JMenuItem valuationPerPack                         = new JMenuItem(); 
       
        valuation.setText("Auswertungen"); 
        valuationTotal.setText("Auswertung gesamt"); 
        valuationPerPack.setText("Auswertung per Sprachpaket"); 
        //====================================================================================
        // Auswertungen
        //====================================================================================   
        JMenu user                                         = new JMenu(); 
        JMenuItem userDataMyData                         = new JMenuItem(); 
        JMenuItem userDataLogOff                         = new JMenuItem(); 
     
        user.setText("Hallo " + userFirstName + " " + userSurName); 
        userDataMyData.setText("Meine Daten"); 
        userDataLogOff.setText("Abmelden"); 

        //====================================================================================
        // Actionlistener für Lernen
        //====================================================================================   

        startLearning.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                layout.show(mainPane, "Lernen starten"); 
            } 
        });
        menuFileExit.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                MainFrame.this.windowClosed(); 
            } 
        });
        //====================================================================================
        // ActionListener für Sprachpakete
        //====================================================================================   
        langPackCreate.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                layout.show(mainPane, "Sprachpaket erstellen"); 
            } 
        });   
        langPackDelete.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                layout.show(mainPane, "Sprachpaket löschen"); 
            } 
        });
       
        //====================================================================================
        // ActionListener für Karten
        //====================================================================================   
        cardsCreate.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                layout.show(mainPane, "Karte erstellen"); 
            } 
        });   
        cardsEdit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) { 
                layout.show(mainPane, "Karte bearbeiten"); 
            } 
        });
        cardsDelete.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                layout.show(mainPane, "Karte löschen"); 
            } 
        });
        //====================================================================================
        // ActionListener für Auswertungen
        //====================================================================================   
        valuationTotal.addActionListener(new ActionListener() { 
                public void actionPerformed(ActionEvent e) { 
                    layout.show(mainPane, "Auswertung gesamt"); 
                } 
            });
        valuationPerPack.addActionListener(new ActionListener() { 
                public void actionPerformed(ActionEvent e) { 
                    layout.show(mainPane, "Auswertung per Sprachpaket"); 
                } 
            });
        //====================================================================================
        // ActionListener für Benutzer
        //====================================================================================   
      userDataMyData.addActionListener(new ActionListener() { 
              public void actionPerformed(ActionEvent e) { 
                  layout.show(mainPane, "Meine Daten"); 
              } 
          });
      userDataLogOff.addActionListener(new ActionListener() { 
              public void actionPerformed(ActionEvent e) { 
                  MainFrame.this.windowlogoff(); 
              } 
          });

        //====================================================================================
        // Alle Items von Lernen zu Lernen hinzufügen und zum Schluss Lernen zum Menu
        //==================================================================================== 
        learning.add(startLearning);   
        learning.add(menuFileExit); 
        mainMenu.add(learning); 
        //====================================================================================
        // Alle Items von Lernen zu Sprachpaket hinzufügen und zum Schluss Lernen zum Menu
        //====================================================================================
        langPack.add(langPackCreate);   
        langPack.add(langPackDelete); 
        mainMenu.add(langPack);
        //====================================================================================
        // Alle Items von Lernen zu Karten hinzufügen und zum Schluss Lernen zum Menu
        //====================================================================================
        cards.add(cardsCreate);   
        cards.add(cardsEdit); 
        cards.add(cardsDelete);
        mainMenu.add(cards);
        //====================================================================================
        // Alle Items von Lernen zu Auswertung hinzufügen und zum Schluss Lernen zum Menu
        //====================================================================================
        valuation.add(valuationTotal);   
        valuation.add(valuationPerPack); 
        mainMenu.add(valuation);
        //====================================================================================
        // Alle Items von Lernen zu Benutzer hinzufügen und zum Schluss Lernen zum Menu
        //====================================================================================
        user.add(userDataMyData);   
        user.add(userDataLogOff); 
        mainMenu.add(user);
         
        //====================================================================================
        // Hier wird der Container / Frame zusammengesetzt, initialisiert 
        // und die Dimensionen (Grösse) festgelegt
        //==================================================================================== 
        setTitle("Vokabeltrainer"); 
        setJMenuBar(mainMenu); 
        setSize(new Dimension(1024, 768)); 
         
        //====================================================================================
        // Hier der WindowListener, der bestimmt, was passiert, wenn das Fenster geschlossen wird
        //==================================================================================== 
        this.addWindowListener 
        ( 
            new WindowAdapter() { 
                public void windowClosing(WindowEvent e) { 
                    MainFrame.this.windowClosed(); 
                } 
            } 
        );   
    } 
    //====================================================================================
    // Hier der WindowListener, der bestimmt, was passiert, wenn das Fenster geschlossen wird
    //==================================================================================== 
    protected void windowClosed() { 
        // Exit game 
        System.exit(0); 
    }
    //====================================================================================
    // Hier der WindowListener, der bestimmt, was passiert, wenn das Fenster geschlossen wird
    //==================================================================================== 
    protected void windowlogoff() { 
        // Exit game 
        RegisterScreen login = new RegisterScreen();
        login.setVisible(true);
        dispose();
    }
    //====================================================================================
    // Mainmethode, die den Frame 
    //==================================================================================== 
    public static void main(String[] arg) {
        MainFrame mainFrame = new MainFrame();
        mainFrame.setVisible(true);
    }
}

Vielen herzlichen Dank ;-)
 

kaiolischar

Mitglied
Hallo zusammen... nun stosse ich schon wieder an Grenzen.

Wenn ich nun Buttons in meine Panel Classes einbinde, kann ich dort keine ActionListerner einbauen, respektive, diese greifen dann nicht.
Ich habe schon probiert, den ActionListener des obigen Frames zu implementieren. funktioniert nicht.
Dann habe ich versucht, einen einfachen Actionlistener zu nehmen (im WelcomeScreen, den ich im MainFrame geholt habe)

Java:
btnCreateCards.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        CreateCards createCardsPanel = new CreateCards();
                        createCardsPanel.setVisible(true);
                    }
                });

dann habe ich versucht, den Actionlistener aus dem MainFrame zu adaptieren a la

Java:
        btnCreateCards.addActionListener(new ActionListener() {
            public void actionPerformed(e) {
                MainFrame.layout.show(MainFrame.mainPane, "Lernen starten");
            }
        });

aber auch das greift nicht. Die Panels haben alle ein (null) Layout, da ich die einzelnen Elemente fix positioniert habe.
Kann es daran liegen? Muss ich die Panels alle in Cardlayout umwandeln?

Oh Man... Java wird noch mein Freund, aber der Weg wird lang werden ;-)

Hat hier noch jemand einen Tipp für mich?
Würde mich freuen.

Gruss Kai
 

Robat

Top Contributor
btnCreateCards.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CreateCards createCardsPanel = new CreateCards();
createCardsPanel.setVisible(true);
}
});
Was glaubst du denn was dieser Code macht?

kann ich dort keine ActionListerner einbauen, respektive, diese greifen dann nicht.
Was heißt "greifen dann nicht"? hast du mal mit Konsolenausgaben geschaut ob er den ActionListener überhaupt triggert?

Grundsätzlich würde ich den JPaneln eine Instanz von deinem MainFrame übergeben, im MainFrame eine Methode zum "Panel wechseln" einbauen und diese dann über die Instanz aufrufen.
 

kaiolischar

Mitglied
Was glaubst du denn was dieser Code macht?
Vielleicht liege ich ja komplett falsch... ich denke, dass ich damit eine neue Instanz des Panels CreateCard erstelle und diese dann "visible" setze... Aber vermutlich liegt mein Denkfehler wohl darin, das ich praktisch ein Panel in einem Panel anzeigen lassen will und nicht im Frame.

Aber bevor ich mich komplett zum Klops mache, denke ich, dass ich lieber nicht mehr frage ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
R ImageIcon - Über Socket AWT, Swing, JavaFX & SWT 1
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
B Über SWT Button Thread beenden AWT, Swing, JavaFX & SWT 2
E Über CellEditorListener an die JTable gelangen AWT, Swing, JavaFX & SWT 4
C AWT Über Pulldownmenü neue Javadatei öffnen AWT, Swing, JavaFX & SWT 7
K Über die Menübar das JPanel ändern AWT, Swing, JavaFX & SWT 2
V Bei JLabel das Icon Über den Text machen AWT, Swing, JavaFX & SWT 2
G Über ein Video zeichnen AWT, Swing, JavaFX & SWT 3
M Über RadioButton öffnen? AWT, Swing, JavaFX & SWT 9
P Über Actionlistener Datenbankzugriff AWT, Swing, JavaFX & SWT 3
C JMenuBar AWT, Swing, JavaFX & SWT 6
J Swing JMenuItem blockiert JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar bei sichtbarer JGlassPane AWT, Swing, JavaFX & SWT 1
R JMenuBar.setFont tut nix ? AWT, Swing, JavaFX & SWT 1
I Swing JMenuBar auch unten am JFrame? AWT, Swing, JavaFX & SWT 2
A Swing JMenuBar updaten AWT, Swing, JavaFX & SWT 2
kaoZ Swing JMenuBar, Preferences, Properties... und viele andere lustige Dinge (Best Practice) AWT, Swing, JavaFX & SWT 15
Q Designfrage zur JMenuBar AWT, Swing, JavaFX & SWT 6
S JMenuBar wiederverwenden und Eventhandling anpassen AWT, Swing, JavaFX & SWT 4
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
Q Fragen zur JMenuBar & Co. AWT, Swing, JavaFX & SWT 3
M JMenuBar, JMenu, JMenuItem wird nicht angezeigt AWT, Swing, JavaFX & SWT 16
G Swing JMenuBar zu weit links und oben dargestellt AWT, Swing, JavaFX & SWT 5
B Swing Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
D JMenuBar - CardLayout (Klasse anzeigen) AWT, Swing, JavaFX & SWT 3
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
H jMenuBar AWT, Swing, JavaFX & SWT 13
NR_EIGHT Swing Probleme mit JMenuBar AWT, Swing, JavaFX & SWT 6
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
Madlip JMenuBar in JFrame AWT, Swing, JavaFX & SWT 5
B JFrame / JMenuBar => Anfängerprobleme AWT, Swing, JavaFX & SWT 2
R JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar nach 1. Klick deselectieren AWT, Swing, JavaFX & SWT 6
Z JMenuBar wird nicht in JFrame angezeigt AWT, Swing, JavaFX & SWT 2
N JMenuBar verschwindet nicht nach ComponentEvent AWT, Swing, JavaFX & SWT 6
C JMenuBar aktualisieren? AWT, Swing, JavaFX & SWT 2
A Doppelte JMenuBar AWT, Swing, JavaFX & SWT 2
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
C JMenuBar im JFrame abgehackt AWT, Swing, JavaFX & SWT 7
J Swing JFrame mit JMenuBar, allerdings ohne Erfolg AWT, Swing, JavaFX & SWT 10
K Look&Feel von JMenuBar und Subkomponenten anpassen AWT, Swing, JavaFX & SWT 6
C JMenuBar linksbündig AWT, Swing, JavaFX & SWT 6
C Größe JMenuBar AWT, Swing, JavaFX & SWT 5
KrokoDiehl Swing Actions direkt auf der JMenuBar AWT, Swing, JavaFX & SWT 6
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
Developer_X Swing JMenuBar Layout AWT, Swing, JavaFX & SWT 2
kniffel JMenuBar aus anderer Klasse AWT, Swing, JavaFX & SWT 10
G Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
G JMenuBar verschmälern AWT, Swing, JavaFX & SWT 2
M ALT shortcut für JMenuBar deaktivieren AWT, Swing, JavaFX & SWT 3
X JMenuBar überlappt von JPanel :( AWT, Swing, JavaFX & SWT 7
M4nuel Warum überlagert JDesktopPane mein JMenuBar? AWT, Swing, JavaFX & SWT 5
G StatusBar Optik wie JMenuBar; GUI-Erzeugung delegieren AWT, Swing, JavaFX & SWT 2
J JMenuBar in Frame einbauen AWT, Swing, JavaFX & SWT 6
D Canvas über JMenuBar AWT, Swing, JavaFX & SWT 7
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
C JLabel in JMenuBar frei platzieren AWT, Swing, JavaFX & SWT 2
B JMenubar AWT, Swing, JavaFX & SWT 5
Chris_1980 Makierungsfarbe bei JMenuBar ändern AWT, Swing, JavaFX & SWT 5
L Problem mit JMenuBar AWT, Swing, JavaFX & SWT 5
F JTextField rechts in der JMenuBar AWT, Swing, JavaFX & SWT 4
A gezeichnete Linie verschwindet, wenn ich JMenuBar öffne AWT, Swing, JavaFX & SWT 2
I JMenuBar - Menüs sortieren AWT, Swing, JavaFX & SWT 2
S JMenuBar mit Action belegen! AWT, Swing, JavaFX & SWT 5
M JMenuBar AWT, Swing, JavaFX & SWT 7
B JMenuBar sowie Buttons nach repaint auf JPanel AWT, Swing, JavaFX & SWT 2
T JMenuBar ausblenden lassen aber Hotkeys sollen erhalten sein AWT, Swing, JavaFX & SWT 2
S JMenuBar + update AWT, Swing, JavaFX & SWT 3
M JMenuBar - JMenu mit Tastenkombination aufrufen / anzeigen AWT, Swing, JavaFX & SWT 8
T JMenuBar zweizeilig AWT, Swing, JavaFX & SWT 2
A JMenuBar + paint (Image) AWT, Swing, JavaFX & SWT 6
M JmenuBar wird net angezeigt :( AWT, Swing, JavaFX & SWT 6
U komplette JMenuBar deaktivieren? AWT, Swing, JavaFX & SWT 4
S Mausklick reagiert nicht im JMenuBar AWT, Swing, JavaFX & SWT 4
A JMenuBar verschieben. AWT, Swing, JavaFX & SWT 4
T JMenuBar wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 5
H JFrame, JMenuBar, ScrollBar AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben