Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    aggiungere oggetti ad un frame

    Ragazzi ho il seguente codice:

    Main.java:
    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class Main {
        public static void main(String args[]) {
            
            // Instanzio degli oggetti
            JFrame frame = new JFrame("Monopoli");
            GridLayout layout = new GridLayout(3,1);
            
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
            frame.setLayout(layout);
            
            // Qui installo il menu
            Menu menutop = new Menu();
            menutop.setLayout(new GridLayout(1,1));
            frame.add(menutop);
    
            frame.pack();
            frame.setVisible(true);
        } 
    }
    Menu.java:
    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.Applet;
    
    public class Menu extends Applet {
        
        // Metodo per creare un bottone e inserirlo in una griglia
        protected void createButton(String name, GridBagLayout gridbag, GridBagConstraints c){
            JButton button = new JButton(name);
            gridbag.setConstraints(button, c);
            add(button);
        }
        
        private static void menuTop()
        {
            JMenuBar menutop = new JMenuBar();
            JMenu file = new JMenu("File");
            JMenu edit = new JMenu("Edit");
            JMenu help = new JMenu("Help"); 
            menutop.add(file);
            menutop.add(edit);
            menutop.add(help);
        }
        
    }
    Adesso vorrei applicare alla finestra che ho in Main.java il menù che ho creato in Menu.java.
    Ho provato con il seguente codice:

    codice:
            // Qui installo il menu
            Menu menutop = new Menu();
            menutop.setLayout(new GridLayout(1,1));
            frame.add(menutop);
    Ma non va bene
    Qualcuno può aiutarmi?
    Con i sogni possiamo conoscere il futuro...

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

    Re: aggiungere oggetti ad un frame

    Originariamente inviato da gaten
    Ma non va bene
    Qualcuno può aiutarmi?
    Perché un menu dovrebbe essere sottoclasse di Applet? O_o

    Studiati un po' questo link http://docs.oracle.com/javase/tutori...ents/menu.html
    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
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Ho tolto l'extends Applet dalla classe Menu.java e ho modificato così il file Main.java:
    codice:
    public class Main {
        public static void main(String args[]) {
            
            // Instanzio degli oggetti
            JFrame frame = new JFrame("Monopoli");
            Container c = frame.getContentPane();
            GridLayout layout = new GridLayout( 3,1 );
            
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
            frame.setLayout(layout);
            
            // Pannello in alto per il menu
            JPanel topPanel = new JPanel();
            topPanel.setLayout(new GridLayout( 1,1 ));
            
            // Qui installo il menu all'interno del top panel
            Menu menutop = new Menu();
            //topPanel.add(menutop);
            //topPanel.add(menutop);
            //c.add(topPanel);
    
            frame.pack();
            frame.setVisible(true);
        } 
    }
    Dopo aver creato il pannello in alto, non riesco a capire come inserire il menu all'interno. Il problema me lo dà semplicemente perchè ho il file in Menu.java e non direttamente nel Main.java.

    In definitiva io ho il main da una parte e il menu da un'altra parte(due file distinti).
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da gaten
    Dopo aver creato il pannello in alto, non riesco a capire come inserire il menu all'interno. Il problema me lo dà semplicemente perchè ho il file in Menu.java e non direttamente nel Main.java.

    In definitiva io ho il main da una parte e il menu da un'altra parte(due file distinti).
    ma lo hai letto il tutorial che ti ho linkato? Perché aggiungi un menu ad un pannello? Il menu ha un posto ben particolare in cui essere messo che è la JMenuBar. Guarda il metodo setJMenuBar di JFrame.

    Inoltre in quello che scrivi vedo molta confusione.

    Una classe Menu come quella che hai scritto tu non ha senso. Perché c'è quel "createButton"? A che serve al menu? Perché la JMenuBar la dichiari e definisci internamente ad un metodo? Non sarà utilizzabile da nessun'altra parte in questo modo, non è visibile al di fuori di menuTop().

    Oltre al link di prima guardati anche questo
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Alex, il mio problema stà:

    Nell' applicare al JFrame che ho in Main.java un menu che creo in Menu.java.
    Devo avere due file distinti.

    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    
    public class Main {
        public static void main(String args[]) {
            
            // Instanzio degli oggetti
            JFrame frame = new JFrame("Monopoli");
            GridLayout layout = new GridLayout( 3,1 );
            
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
            frame.setLayout(layout);
            
            JMenuBar menutop = new JMenuBar();
            
            // Creo le singole sezioni
            JMenu file = new JMenu("File");
            JMenu edit = new JMenu("Edit");
            JMenu help = new JMenu("Help");
            
            // Creo le sottosezioni dei menu
            JMenuItem helpContents = new JMenuItem("Help Contents");
            help.add(helpContents);
            
            // Associo il tutto alla barra menu
            menutop.add(file);
            menutop.add(edit);
            menutop.add(help);
            
            frame.setJMenuBar(menutop);
            
            frame.pack();
            frame.setVisible(true);
        } 
    }
    Così risolvo, però io vorrei tipo avere delle classi distinte, come mi consigli di agire?
    Con i sogni possiamo conoscere il futuro...

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da gaten
    Alex, il mio problema stà:

    Nell' applicare al JFrame che ho in Main.java un menu che creo in Menu.java.
    Devo avere due file distinti.

    codice:
     ...
    Così risolvo, però io vorrei tipo avere delle classi distinte, come mi consigli di agire?
    E' il testo dell'esercizio? A questo punto farei una cosa del genere:

    codice:
    public class Menu {     
        public static JMenuBar createMenuTop() {
            JMenuBar menutop = new JMenuBar();
    
            JMenu file = new JMenu("File");
            JMenu edit = new JMenu("Edit");
            JMenu help = new JMenu("Help"); 
    
            menutop.add(file);
            menutop.add(edit);
            menutop.add(help);
    
            return menutop;
        }    
    }
    
    
    public class Main { 
    ...
            
            JMenuBar menutop = Menu.createMenuTop();
             
            frame.setJMenuBar(menutop);
    
    ...
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Alex non è il testo di un esercizio.

    In realtà dovrei creare un'applicazione che abbia all'inizio una schermata di login per accedere. Una volta effettuato l'accesso devo avere a disposizione un menu del tipo:

    Inserisci nel database, visualizza dal database, entrambi sezioni di un menu a tendina.
    Esempio , quando vado su Inserisci nel database,devono uscire nelle sottosezioni, i nomi delle tabelle nelle quali inserire i record, analogamente per la visualizzazione.

    Adesso vorrei capire, teoricamente come strutturare la cosa.

    Io avevo pensato di creare un frame prinicpale nel quale visualizzare il tutto.

    Avevo pensato di strutturare il tutto creando le seguenti classi per adesso:

    Main.java (file principale nel quale richiamerò il login )
    Login.java
    Database.java

    E' giusto?
    Con i sogni possiamo conoscere il futuro...

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.