Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    4

    Evento (altro tipo) che cambia una label.

    Ciao a tutti,

    sono nuovo del forum e diciamo anche della programmazione java (quindi sopportatemi se scriverò qualche strafalcione a livello di programmazione :-) ). In passato ho studiato un po' lo c# e devo dire che trovo molte similitudini.

    Comunque avrei bisogno di un vostro aiuto per una piccola routine che sto facendo.

    L'esempio da prendere in questione è il seguente:

    http://www.java2s.com/Code/Java/Deve...disequence.htm

    Praticamente queste due classi implementano oggetti per far suonare il file midi. Premetto che che la gestione degli eventi mi è stata sempre un po' difficile da capire....

    Il mio problema è che il vorrei far in modo che ogni volta che si verifica un evento midi sul sequencer io possa aggiornare una label inserita in un frame o pannello creato in un progetto standard desktop del wizard di netbeans (per capirci un frame e qualche controllo per una applicazione minimale).

    In pratica ogni volta che viene chiamato il metodo public -void meta(MetaMessage event) -che vedete sul listato devo poter aggiornare una label sull'applicazione. Mi date un idea anche concettuale e /o schematica di come poter fare ? oppure qualche dritta.

    Ciao e grazie anticipatamente a tutti.

    ps complimenti per la vostra partecipazione attiva al forum.

    Luca

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Evento (altro tipo) che cambia una label.

    Originariamente inviato da MrScope
    In pratica ogni volta che viene chiamato il metodo public -void meta(MetaMessage event) -che vedete sul listato devo poter aggiornare una label sull'applicazione. Mi date un idea anche concettuale e /o schematica di come poter fare ?
    In quel metodo devi poter "vedere" la label, ovvero devi aver tenuto un reference alla label da qualche parte (tipicamente: variabile di istanza). Nel metodo invochi setText() sulla label per settare il testo in base a test sullo stato MIDI o altro ...

    codice:
    private JLabel tuaLabel;
    
    ....
    
    public void meta(MetaMessage event) {
        ....tuoi test....
        tuaLabel.setText(".....");
        ....
    }
    Tutto ... qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    4
    Ho risolto ma non so se l'approccio è corretto.

    Andbin quello che dici tu è la prima cosa che ho pensato di fare ma subito non ci riuscivo perchè visto che la classe MidiPlayer e la classe che gestisce la grafica sono due distinte e non sapevo come poter fare riferimento a una label appartenente alla classe principale che crea la GUI.

    Alla fine ho fatto così:

    Sulla classe Midiplayer ho dichiarato una variabile pubblica di tipo Jlabel e dalla classe che gestisce la grafica gli ho passato la label che mi interessa aggiornare, in questo modo:


    ..........(classe Midiplayer-grafica-)

    public JLabel label;

    funzione evento( Event evt)
    {
    ......
    label.setText("TESTO!!");
    ......
    }


    ..........(classe DesktopView -grafica-)

    ....
    //Instanzia un nuovo Midiplayer..

    MidiPlayer player= new MidiPlayer();

    //referenzia la label della finestra principale alla label del MidiPlayer
    player.label= StatusLabel



    ///
    Non so se questo metodo è corretto (probabilmente non è molto elegante)

    C'è un modo per poter gestire l'evento all'interno invece della classe che gestisce la GUI di modo tale che ogni volta che si verifica la gestisco all'interno di una funzione? Non sono pratico di gestione degli eventi , anzi diciamo che non c'ho capito un tubo :-)

    Grazie Andbin e a chi vorrà rispondere!

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.