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

    Implementare azione su JMenu aiuto per favore

    salve ragazzi, avrei bisogno del vostro aiuto.

    Sto creando un'applicazione java con interfaccia swing.

    Per creare i menu ho utilizzato la classe presente nel sito ufficiale di java chiamata

    "MenuLookDemo". http://download.oracle.com/javase/tu...uLookDemo.java


    Per richiamarla ho solamento inserito questo frammeno di codice nella mia classe main.

    codice:
    MenuLookDemo demo = new MenuLookDemo();
    frame.setJMenuBar(demo.createMenuBar());
    adesso il mio problema è questo. Attraverso il menu io devo fare in modo che cambi la schermata.

    In pratica all'avvio il mio programma mostra un oggetto jpanel all'interno di un JFrame con una tabella e alcune label.

    Alla pressione di una voce del menu deve sparire tutto e deve apparire un altro jpanel contenente delle text nello stesso frame. (Spero di essere stato chiaro).

    Per far ciò ho pensato subito di inserire degli eventi in questo modo:

    codice:
    menuItem = new JMenuItem("Inserisci nuova corsa",
                                     KeyEvent.VK_T);
            menuItem.addActionListener( new ActionListener() {
                public void actionPerformed( ActionEvent e ) {
                    System.out.println("Creo una azione");
                    
                }
            } );
    L'azione funziona perfettamente infatti a video mi viene stampato il messaggio. Ma per fare ciò che io voglio mi occorre operare su variabili quali JPanel e JFrame che sono presenti nella mia classe che contiene il main.

    Spero di essere stato chiaro

    aiutatemi per favore

    grazie per le vostre risposte

  2. #2
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Utilizzando una classe esterna per gestire la barra dei menu non hai molte strade: la classe esterna deve conoscere le variabili sulle quali deve agire, e pertanto deve memorizzare al suo interno un riferimento a dette variabili (passate come parametri di costruzione, o tramite metodi setter appositi).

    Pur non conoscendo la struttura completa della tua applicazione, ti suggerisco però una soluzione alternativa: ipotizzando che gli elementi grafici si trovino all'interno di una classe che estende JFrame, fai implementare a questa classe l'interfaccia ActionListener, inserendo nel metodo actionPerformed le operazioni di "swapping" che intendi eseguire

  3. #3
    Un altro approccio può essere il seguente:

    dato che la schermata rappresentante la tua applicazione è unica, la tua classe che rappresenta il frame con dentro il jpanel che ti serve, la rendi un singleton (documentati se necessario). Dopodichè potrai accedere al tuo pannello tramite una cosa del genere:

    TuoJFrame.getInstance().getTuoPanel()

    sul quale puoi fare quello che ti serve.
    Al mio segnale... scatenate l'inferno!

  4. #4
    ho provato a capire come funziona il metodo singleston ma non ho ben chiare l idee

    vi posto un po di codice:

    codice:
    public class MainClass extends Thread{
    
    public static void main(String[] args) {
    		
    	    MainClass d = new MainClass();
    	  }//fine del metodo main
    	
    	public MainClass(){
    		inizializzaDatabase();
    MenuLookDemo demo = new MenuLookDemo();
    JFrame frame = new JFrame("Pullman ver 1.0");
    		//frame.getPreferredSize();
    		frame.setSize(900, 480);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setJMenuBar(demo.createMenuBar());
    		frame.pack();
            frame.setVisible(true);
    in che modo dovrei modificarla???

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.