Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

    mandare jPanel per riferimento

    Ciao,
    ho una classe primo() e in questa classe ho un frame con dentro un pannello che contiene label e bottoni. Posso mandare il pannello ad un altra classe, per esempio secondo(jPanel)?
    Se i label e i bottoni all'interno del pannello vengono modificati nella classe primo(), poi le modifiche vengono passate anche alla classe secondo(jPanel)?

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

    Re: mandare jPanel per riferimento

    Originariamente inviato da Salinas
    ho una classe primo() e in questa classe ho un frame con dentro un pannello che contiene label e bottoni. Posso mandare il pannello ad un altra classe, per esempio secondo(jPanel)?
    Sì, ovviamente, mettendo il costruttore apposito che riceve il reference al JPanel.

    Originariamente inviato da Salinas
    Se i label e i bottoni all'interno del pannello vengono modificati nella classe primo(), poi le modifiche vengono passate anche alla classe secondo(jPanel)?
    Ovviamente sì. Nel senso però che non "passa" un bel niente. L'altra classe ha solo un riferimento al JPanel.

    Il problema quindi non è tanto passare un reference .... ma capire perché devi fare una cosa del genere e perché in un'altra classe dovresti "aspettarti" modifiche su un pannello gestito da un'altra classe.
    Sono questioni di "design" .... e può darsi che il tuo inizi a fare acqua ....
    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
    Jun 2008
    Messaggi
    396
    Il problema quindi non è tanto passare un reference .... ma capire perché devi fare una cosa del genere e perché in un'altra classe dovresti "aspettarti" modifiche su un pannello gestito da un'altra classe.
    Sono questioni di "design" .... e può darsi che il tuo inizi a fare acqua ....
    Devo farlo perchè la classe secondo() deve lavorare con il pannello contenente le modifiche apportate nella plasse primo().
    Alla fine a me serve solo riprendere e visualizzare il pannello creato e modificato nella classe primo(), come dovrei fare altrimenti?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Forse mi sono dimenticato di dire che le due classi sono situate in due file diversi!
    Cmq invece di passarlo per il costruttore, lo voglio passare tramite un metodo "getPannel()".
    Purtroppo non me lo fa girare e mi da questo errore:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at mensa.pagine.scegliPietanza.jButton11ActionPerformed(scegliPietanza.java:783)
            at mensa.pagine.scegliPietanza.access$900(scegliPietanza.java:8)
            at mensa.pagine.scegliPietanza$10.actionPerformed(scegliPietanza.java:280)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:5602)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3129)
            at java.awt.Component.processEvent(Component.java:5367)
            at java.awt.Container.processEvent(Container.java:2010)
            at java.awt.Component.dispatchEventImpl(Component.java:4068)
            at java.awt.Container.dispatchEventImpl(Container.java:2068)
            at java.awt.Component.dispatchEvent(Component.java:3903)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
            at java.awt.Container.dispatchEventImpl(Container.java:2054)
            at java.awt.Window.dispatchEventImpl(Window.java:1801)
            at java.awt.Component.dispatchEvent(Component.java:3903)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Le pagine si susseguono tramite un cardLayout.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    L'eccezione dice che passi un oggetto che ha valore null, o meglio, cerchi di usare una proprietà o un metodo di un oggetto null.
    Guarda a quella riga che istruzioni hai e se l'oggetto che passi/usi è già stato creato oppure no.

    Un JPanel con un metodo getPanel lo puoi sicuramente usare.
    al volante son nervoso

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    sisi, lo so che vuol dire, ma non so perchè visto che come dici tu, lo posso creare un getPanel.
    L'oggetto è stato già creato e caricato nel cardLayout.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da Salinas
    sisi, lo so che vuol dire, ma non so perchè visto che come dici tu, lo posso creare un getPanel
    Senza vedere il codice non posso ipotizzare perchè un oggetto sia nullo.
    al volante son nervoso

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Guarda la cosa è semplice.
    Creo un pannello in un file.java
    Lo voglio passare ad un altro file.java tramite una funzione, per esempio setPanel(p), che è stato creato e caricato da un cardLayut (quindi esiste il file).
    Quando provo a settare il pannello dal file1 al file2, entrami caricati in precedenza dal cardLayout, mi da quell'errore.

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Salinas
    Lo voglio passare ad un altro file.java tramite una funzione, per esempio setPanel(p), che è stato creato e caricato da un cardLayut (quindi esiste il file).
    Quando provo a settare il pannello dal file1 al file2, entrami caricati in precedenza dal cardLayout, mi da quell'errore.
    Aspetta ... non dirmi che un JPanel dentro un certo contenitore X lo vuoi anche mettere, esattamente proprio quel JPanel stesso, dentro un altro contenitore Y.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

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.