Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102

    [java] componente gestito da altro componente

    è possibile creare un componente che al suo interno abbia dei metodi per modificare un componente esterno ?

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

    Re: [java] componente gestito da altro componente

    Originariamente inviato da Pierock
    è possibile creare un componente che al suo interno abbia dei metodi per modificare un componente esterno ?
    Detto così non è molto chiaro .... quale è l'obiettivo esatto?
    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 L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    chiedo scusa ;p
    quello che vorrei fare è posizionare 2 componenti su un pannello;
    di questi, uno è un mio componente..l'altro un jcombobox
    l'idea è quella di poter "associare" la jcombo al mio componente, di modo che quest'ultimo possa modificare la combo a propria esigenza ...
    l'obiettivo dunque è far in modo che l'action listener per far questo non sia contenuto in una classe esterna alle 2 componenti... ma un qella creata da me... in modo da poterla riusare più volta nel progetto.

    non so se sn stato chiaro... (so di non esserlo spesso )

    cmq credo di aver già risolto...
    codice:
    public class miocomponente extends JComponent{
         private JComboBox cb;
         ...
         ....
    
    public void setDiscepolo(JComboBox jcb){
        this.cb = jcb;
    }
    
    public void setVisibleDiscepolo(boolean b){
       this.cb.setVisible(b);
    }
    }
    ... ditemi che ne pensate

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Pierock
    codice:
    public class miocomponente extends JComponent{
         private JComboBox cb;
         ...
         ....
    
    public void setDiscepolo(JComboBox jcb){
        this.cb = jcb;
    }
    
    public void setVisibleDiscepolo(boolean b){
       this.cb.setVisible(b);
    }
    }
    Fin qui, tecnicamente, nulla di strano, miocomponente è una classe (estensione di JComponent, quindi è un componente Swing) che ha un riferimento ad un JComboBox ricevuto dall'esterno.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    ho un piccolo problemino però.....
    credo si comporti un po' in maniera anomala...

    all'interno della classe miocomponente vi è una classe listener... dunque l'istruzione di addactionlistener associata ad una JComboBox... (xJcombo)
    codice:
      xJcombo.addActionListener(new ComboBoxListener());
        ... 
        ...
    
    private class ComboBoxListener implements ActionListener{
    
    	    public void actionPerformed(ActionEvent evt) {
                   System.out.println("azine");
                         // istruzioni che modificano la componente "discendente"
                 }
    mandato in esecuzione a monitor mi compare direttamente la scritta "azione" senza ch'io abbia ancora azionato la combo, seguita da:

    Serialization error: java.lang.NullPointerException (solo questo rigo)

    e azionando la combobox che dovrebbe attivare il listener nn succede nulla.....
    che succede?
    eppure il codice su un'altra classe funziona perfettamente

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Pierock
    ho un piccolo problemino però.....
    credo si comporti un po' in maniera anomala...

    all'interno della classe miocomponente vi è una classe listener... dunque l'istruzione di addactionlistener associata ad una JComboBox... (xJcombo)
    codice:
      xJcombo.addActionListener(new ComboBoxListener());
        ... 
        ...
    
    private class ComboBoxListener implements ActionListener{
    
    	    public void actionPerformed(ActionEvent evt) {
                   System.out.println("azine");
                         // istruzioni che modificano la componente "discendente"
                 }
    mandato in esecuzione a monitor mi compare direttamente la scritta "azione" senza ch'io abbia ancora azionato la combo, seguita da:

    Serialization error: java.lang.NullPointerException (solo questo rigo)

    e azionando la combobox che dovrebbe attivare il listener nn succede nulla.....
    che succede?
    eppure il codice su un'altra classe funziona perfettamente
    Hai inizializzato la JComboBox?
    Ho provato il codice e non mi dà né errori né eccezioni...

  7. #7
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    si si... ti ringrazio... nel frattempo ho risolto, ma non ho avuto modo di segnalarvelo...
    non so cosa sia successo...
    ho "banalmente" ho provare a creare una nuova classe, e rimettere tutto il codice....
    nn mi ha dato alcun errore... mah!
    grazie mille cmq per la cortesia!!

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.