[Java] Menüpunkte verlinken per ContentPane?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von klaxx, 26. Januar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. Januar 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Menüpunkte verlinken per ContentPane?

    Hallo,

    mein Programm ist noch sehr klein und kann auch nicht besonders viel.
    Hat ne Menüleiste mit 3 Methoden welche auf verschieden andere verweisen.

    Sieht so aus:

    Bild


    Ich möchte nun beim klicken auf Keyboard eine "Seite" in den Frame schreiben.

    Mit welchem Befehl geht das?

    Spoiler
    php code da java code nicht verfügbar und sieht einfach besser aus
    PHP:

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


    public class 
    menu  {

        private 
    JFrame jFrame  null ;
        private 
    JPanel jContentPane  null ;
        private 
    JMenuBar jJMenuBar  null ;
        
    // 3 Menüs
        
    private  JMenu startMenu  null ;
        private 
    JMenu optionMenu  null ;
        private 
    JMenu helpMenu  null ;
        
    // Start Untermenü
        
    private  JMenuItem singleMenuItem  null ;
        private 
    JMenuItem multiMenuItem  null // Dient für die Teilnahme oder Einleitung des Mutliplayers
        
    private  JMenuItem exitMenuItem  null ;
        
    // Option Untermenü
        
    private  JMenuItem soundMenuItem  null ;
        private 
    JMenuItem grafikMenuItem  null ;
        private 
    JMenuItem keyboardMenuItem  null ;
        private 
    JMenuItem multi2MenuItem  null // Dient für die Mehrspieleroptionen
        // Help Untermenü
        
    private  JMenuItem infoMenuItem  null ;
        private 
    JMenuItem aboutMenuItem  null ;
        private 
    JMenuItem kontaktMenuItem  null ;
        private 
    JMenuItem networkMenuItem  null ;
          
    // KP ^^
        
    private  JDialog aboutDialog  null ;
        private 
    JPanel aboutContentPane  null ;
        private 
    JLabel aboutVersionLabel  null ;

        private 
    JFrame getJFrame () {
            if (
    jFrame  ==  null ) {
                
    jFrame  = new  JFrame ();  // Neuer Frame
                
    jFrame . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
                
    jFrame . setResizable ( true );  // erlaubt das verändert der größe
                
    jFrame . setJMenuBar ( getJJMenuBar ());
                
    jFrame . setSize ( 600 450 );  // größe des Frames
                
    jFrame . setContentPane ( getJContentPane ());
                
    jFrame . setTitle ( "PaintBall - Beta" );  // Titelleiste & Inhalt
            
    }
            return 
    jFrame ;
        }

        private 
    JPanel getJContentPane () {
            if (
    jContentPane  ==  null ) {
                
    jContentPane  = new  JPanel ();
                
    jContentPane . setLayout (new  BorderLayout ());
            }
            return 
    jContentPane ;
        }
    /////////////////////////////////////////////////////////////
    //Menübar
    /////////////////////////////////////////////////////////////
           
    private  JMenuBar getJJMenuBar () {
            if (
    jJMenuBar  ==  null ) {
                
    jJMenuBar  = new  JMenuBar ();
                
    jJMenuBar . add ( getStartMenu ());
                
    jJMenuBar . add ( getOptionMenu ());
                
    jJMenuBar . add ( getHelpMenu ());
            }
            return 
    jJMenuBar ;
      }
    /////////////////////////////////////////////////////////////
    //Menüoptionen 1-3
    /////////////////////////////////////////////////////////////
        ///////////Startmenü//////////
        
    private  JMenu getStartMenu () {
            if (
    startMenu  ==  null ) {
                
    startMenu  = new  JMenu ();
                
    startMenu . setText ( "Start" );
                
    startMenu . add ( getSingleMenuItem ());
                
    startMenu . add ( getMultiMenuItem ());
                
    startMenu . add ( getExitMenuItem ());
            }
            return 
    startMenu ;
        }
        
    ///////Settings///////

         
    private  JMenu getOptionMenu () {
            if (
    optionMenu  ==  null ) {
                
    optionMenu  = new  JMenu ();
                
    optionMenu . setText ( "Settings" );
                
    optionMenu . add ( getSoundMenuItem ());
                
    optionMenu . add ( getGrafikMenuItem ());
                
    optionMenu . add ( getKeyboardMenuItem ());
                
    optionMenu . add ( getMulti2MenuItem ());
            }
            return 
    optionMenu ;
        }
         
    //////////HELP////////////
        
    private  JMenu getHelpMenu () {
            if (
    helpMenu  ==  null ) {
                
    helpMenu  = new  JMenu ();
                
    helpMenu . setText ( "Hilfe" );
                
    helpMenu . add ( getInfoMenuItem ());
                
    helpMenu . add ( getAboutMenuItem ());
                
    helpMenu . add ( getKontaktMenuItem ());
                
    helpMenu . add ( getNetworkMenuItem ());
            }
            return 
    helpMenu ;
        }
    /////////////////////////////////////////////////////////////
    // Untermenü Start
    /////////////////////////////////////////////////////////////
       
    private  JMenuItem getSingleMenuItem () {
            if (
    singleMenuItem  ==  null ) {
                
    singleMenuItem  = new  JMenu ();
                
    singleMenuItem . setText ( "Single Player" );
            }
            return 
    singleMenuItem ;
        }
       private 
    JMenuItem getMultiMenuItem () {
            if (
    multiMenuItem  ==  null ) {
                
    multiMenuItem  = new  JMenu ();
                
    multiMenuItem . setText ( "Multi Player" );
            }
            return 
    multiMenuItem ;
       }
       private 
    JMenuItem getExitMenuItem () {
            if (
    exitMenuItem  ==  null ) {
                
    exitMenuItem  = new  JMenuItem ();
                
    exitMenuItem . setText ( "Exit" );
                
    exitMenuItem . addActionListener (new  ActionListener () {
                    public 
    void actionPerformed ( ActionEvent e ) {
                        
    System .exit( 0 );
                    }
                });
            }
            return 
    exitMenuItem ;
        }
    /////////////////////////////////////////////////////////////
    // Untermenü Settings
    /////////////////////////////////////////////////////////////
        
    private  JMenuItem getSoundMenuItem () {
            if (
    soundMenuItem  ==  null ) {
                
    soundMenuItem  = new  JMenu ();
                
    soundMenuItem . setText ( "Sound" );
            }
            return 
    soundMenuItem ;
        }
            private 
    JMenuItem getGrafikMenuItem () {
            if (
    grafikMenuItem  ==  null ) {
                
    grafikMenuItem  = new  JMenu ();
                
    grafikMenuItem . setText ( "Grafik" );
            }
            return 
    soundMenuItem ;
        }
            private 
    JMenuItem getKeyboardMenuItem () {
            if (
    keyboardMenuItem  ==  null ) {
                
    keyboardMenuItem  = new  JMenu ();
                
    keyboardMenuItem . setText ( "Steuerung" );
            }
            return 
    keyboardMenuItem ;
        }
            private 
    JMenuItem getMulti2MenuItem () {
            if (
    multi2MenuItem  ==  null ) {
                
    multi2MenuItem  = new  JMenu ();
                
    multi2MenuItem . setText ( "Mehrspieleroptionen" );
            }
            return 
    multi2MenuItem ;
        }
    /////////////////////////////////////////////////////////////
    // Untermenü Help
    /////////////////////////////////////////////////////////////
             
    private  JMenuItem getInfoMenuItem () {
            if (
    infoMenuItem  ==  null ) {
                
    infoMenuItem  = new  JMenu ();
                
    infoMenuItem . setText ( "Info" );
            }
            return 
    infoMenuItem ;
        }
            private 
    JMenuItem getAboutMenuItem () {
            if (
    aboutMenuItem  ==  null ) {
                
    aboutMenuItem  = new  JMenuItem ();
                
    aboutMenuItem . setText ( "About" );
                
    aboutMenuItem . addActionListener (new  ActionListener () {
                    public 
    void actionPerformed ( ActionEvent e ) {
                        
    JDialog aboutDialog  getAboutDialog ();
                        
    aboutDialog . pack ();
                        
    Point loc  getJFrame (). getLocation ();
                        
    loc . translate ( 20 20 );
                        
    aboutDialog . setLocation ( loc );
                        
    aboutDialog . setVisible ( true );
                    }
                });
            }
            return 
    aboutMenuItem ;
        }
             private 
    JMenuItem getKontaktMenuItem () {
            if (
    kontaktMenuItem  ==  null ) {
                
    kontaktMenuItem  = new  JMenu ();
                
    kontaktMenuItem . setText ( "Kontakt" );
            }
            return 
    kontaktMenuItem ;
        }
             private 
    JMenuItem getNetworkMenuItem () {
            if (
    networkMenuItem  ==  null ) {
                
    networkMenuItem  = new  JMenu ();
                
    networkMenuItem . setText ( "Netzwerk" );
            }
            return 
    networkMenuItem ;
        }
    /////////////////////////////////////////////////////////////
    // Methoden für das Popup
    /////////////////////////////////////////////////////////////
          
    private  JDialog getAboutDialog () {
            if (
    aboutDialog  ==  null ) {
                
    aboutDialog  = new  JDialog ( getJFrame (),  true );
                
    aboutDialog . setTitle ( "About" );
                
    aboutDialog . setSize (new  Dimension ( 156 84 ));
                
    aboutDialog . setContentPane ( getAboutContentPane ());
            }
            return 
    aboutDialog ;
        }

        private 
    JPanel getAboutContentPane () {
            if (
    aboutContentPane  ==  null ) {
                
    aboutContentPane  = new  JPanel ();
                
    aboutContentPane . setLayout (new  BorderLayout ());
                
    aboutContentPane . add ( getAboutVersionLabel (),  BorderLayout . CENTER );
            }
            return 
    aboutContentPane ;
        }

        private 
    JLabel getAboutVersionLabel () {
            if (
    aboutVersionLabel  ==  null ) {
                
    aboutVersionLabel  = new  JLabel ();
                
    aboutVersionLabel . setText ( "Das ist ja toll" );
                
    aboutVersionLabel . setHorizontalAlignment ( SwingConstants . CENTER );
            }
            return 
    aboutVersionLabel ;
        }

    /////////////////////////////////////////////////////////////
    // MAIN
    ////////////////////////////////////////////////////////////
        
    public static  void main ( String []  args ) {
            
    SwingUtilities . invokeLater (new  Runnable () {
                public 
    void run () {
                    
    menu application  = new  menu ();
                    
    application . getJFrame (). setVisible ( true );
                }
            });
        }

    }
     
  2. 26. Januar 2009
    AW: Menüpunkte verlinken per ContentPane?

    was meinst du mit "seite in den frame schreiben"? so ne seite wie wie du sie z.b. siehst wenn du word öffnest? zeichne dann bei der eventbehandlung einfach ne dementsprechend große textbox die sich über das ganze frame erstreckt (Dessen bounds kennst du ja)

    sofern ich das falsch versteh bitte posten
     
  3. 26. Januar 2009
    AW: Menüpunkte verlinken per ContentPane?

    Ich weiß nich ob ich mich nich vllt falsch erklärt habe

    Ich möchte, dass ich bei klicken des Keyboards in der Settingsmenüleiste auf die Einstellungen der Tastatur ( Laufen & Schießen ) komme.

    Ich weiß aber nicht, wie ich auf diese Funktion verweisen würde, damit sie unter dem Menü angezeigt wird.

    Gruß
     
  4. 26. Januar 2009
    AW: Menüpunkte verlinken per ContentPane?

    ah ok ... alles klar was du mit seite meintest

    naja leg dir einfach nen neuen frame an auf dem die einstellungen aufgelistet werden. sobald der menüpunkt angeklickt wird machst du einfach dieses fenster zum aktuellen ... also so in die richtung:

    Code:
    
    class keyboardwindows extends frame 
    {
    ....
    }
    
    
    in dem handler des steuerungs-menüpunktes machst du dann folgendes (so wie dus beim exit-menüpunkt gemacht hast):

    Code:
     keyboardwindow fenster2 = new keyboardwindow();
     fenster2.setSize(300, 300);
     fenster2.setLocation(450, 100);
     fenster2.setTitle("keyboardwin");
     Label lbl = new Label("my keyboardwindow", Label.CENTER);
     fenster2.add (lbl);
     fenster2.show(); 
    
    wenn ichs wieder falsch aufgefasst habe ... dann bitte nochmals korrigieren
     
  5. 26. Januar 2009
    AW: Menüpunkte verlinken per ContentPane?

    Nein Super so Ich denke daraus werd ich schlau^^ ich meld mich bei Problemen.

    Dankeschön!
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.