Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JFrame e JMenuBar javax.swing

    Ciao. Ho provato vari tutorial sul web e quando ho messo mano non gira niente come vorrei.
    Questa classe funziona e fa vedere una finestra e una barra dei menu usando javax.swing.
    Ecco il
    codice:
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    
    public class Menu_main extends JFrame {
        public Menu_main() {
            setTitle("Menu main con barra dei menu");
            JMenuBar menubar = new JMenuBar();
            JMenu file = new JMenu("File");
            JMenuItem fileClose = new JMenuItem("Close");
            file.add(fileClose);
            menubar.add(file);
            setJMenuBar(menubar);
            setSize(360, 250);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setVisible(true);
        }
        public static void main(String[] args) {
            new Menu_main();
        }
    }
    In seguito ho scritto una classe per il menu
    codice:
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    
    public class MenuNoMain extends JMenuBar {
        public MenuNoMain() {
            JMenuBar menubar = new JMenuBar();
            JMenu file = new JMenu("File");
            JMenuItem fileClose = new JMenuItem("Close");
            file.add(fileClose);
            menubar.add(file);
        }
    
        public MenuNoMain getMenu(){
            return this.getMenu();
        }
    }
    per richiamare il tutto in questa
    codice:
    import javax.swing.JFrame;
    
    
    public class MenuMain extends JFrame{
        public MenuMain(){
            setTitle("Menu main con barra dei menu");
            MenuNoMain menuBar = new MenuNoMain();
            setJMenuBar(menuBar);
            setSize(360, 250);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setVisible(true);
        }
        public static void main (String[] args ) {
            new MenuMain();
        }
    }
    Il risultato è che non funziona e non riesco a capire perché. Dove ho sbagliato?
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: JFrame e JMenuBar javax.swing

    Originariamente inviato da Andrea08
    In seguito ho scritto una classe per il menu
    codice:
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    
    public class MenuNoMain extends JMenuBar {
        public MenuNoMain() {
            JMenuBar menubar = new JMenuBar(); //1
            JMenu file = new JMenu("File");
            JMenuItem fileClose = new JMenuItem("Close");
            file.add(fileClose);
            menubar.add(file); //2
        }
    
        public MenuNoMain getMenu(){
            return this.getMenu();
        }
    }
    Il risultato è che non funziona e non riesco a capire perché. Dove ho sbagliato?
    La tua classe MenuNoMain è un JMenuBar, perché ne istanzi uno nuovo al suo interno? Togli il pezzo segnato con 1 e modifica il 2 di conseguenza. Il metodo getMenu() poi è totalmente inutile :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Grazie per il tuo aiuto. Per quanto riguarda il metodo getMenu()... mi stavo arrampicando sugli specchi...
    ciao e grazie per la tempestiva soluzione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.