Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378

    [JAVA] gestione eventi

    Ciao a tutti, avrei bisogno di una mano per sistemare un apllicazione che sto sviluppando. Si tratta di un applicazione grafica che legge dati da un database e per ora funziona tutto.

    Il mio problema è che sia la grafica che i gestori degli eventi si trovano nello stesso file ( ormai ho superato le 4000 righe ) e mettere le mani su questo file diventa sempre + difficile.

    Vorrei spostare la gestione degli venti in classi separate, ma non trovo un modo per passare le variabili a queste classi.... Mi spiego meglio con un esempio: supponiamo che cliccando su un bottone l'applicazione debba caricare e visualizzare i dati relativi a un cliente, avrei bisogno di andare a scrivere nelle variabili NOME, COGNOME, ecc i dati prelevati dal DB. Ora che tutte le variabili sono dichiarate nella stessa classe non ho problemi.... non riesco però a dare visibilità a queste variabili alla classe che si dovrà occupare dlla gestione dei bottoni....

    Ringrazio in anticipo chiunque potrà aiutarmi !!

  2. #2
    Beh, tu associ ai vari bottoni l'ascoltatore che è, e quanto crei l'ascoltatore gli passi anche le variabili che devi modificare (o direttamente il JFrame o JPanel se le variabili devono essere "inserite" in componenti swing), quindi le modifichi a piacimento da lì...

    class Fai
    {
    ....
    asc = new Ascoltatore(Vector variabili) //oppure gli passi il JFrame
    bottone1.addChangeListener(asc);
    ....
    bottoneN.addChangeListener(asc);
    }

    class Ascoltatore
    {
    private Vector var;

    public Ascoltatore(Vector var)
    {
    this.var = var;
    }
    // Ora hai le tue varibile belle e pronte per essere modificate!!
    // Se devi farle "tornare indietro" alla classe Fai, crea una funzione nella classe ascoltatore del tipo:
    public Vector ritornaVariabili()
    {
    return var;
    }
    }

    nella classe Fai sotto "bottoneN.addChangeListener(asc);" ci aggiungi:
    Vector v = asc.ritornaVariabili();
    e sei a posto!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    Ciao, ti ringrazio per la risposta, ma ner frattempo ho usato un altro metodo.... ho dichiarato le variabili static e dalla classe che gestisce gli eventi le uso con NOMECLASSE.NOMEVARIABILE e sembra funzionare tutto....



    Gia che ci sono sai mica se c'è un modo per scatenare un evento (ad esempio la pressione di un bottone) senza che venga realmente premuto ma da un istruzione di codice !?!?!?



    grazie ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Dalle API

    http://java.sun.com/javase/6/docs/ap...g/JButton.html

    visto che eredita da AbstracButton, puoi utilizzare il metodo doClick();

    - OT: sarebbe meglio comunque aprire una discussione a parte per ogni problema diverso.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    grazie per la risposta, ora non ho modo di guardare, ma mi sembra strano che non l'habbia visto il metodo .doClick() ..... dici che basta semplicemente fare: nomeBottone.doClick() !?!?

    grazie ancora e scusate se ho scritto una seconda domanda sullo stesso post.... :-)

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da bmw
    ..... dici che basta semplicemente fare: nomeBottone.doClick() !?!?
    Sì, esattamente.

    http://java.sun.com/j2se/1.4.2/docs/...n.html#doClick()

    oppure quello sotto, con l'effetto di pressione per i millisecondi specificati.
    Chiaramente, se al JButton che vai a clickare con doClick() non ci attacchi un listener, non sortirai alcun effetto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.