Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con JPanel

  1. #1

    Problema con JPanel

    Ho vari problemi con questa componente che comunque, dopo varie prove, riassumo ad uno.
    Stò lavorando in NetBeans e nella mia applicazione desktop ho un JPanel, con il seguente codice (generato da NetBeans):
    codice:
    mainPanel = new javax.swing.JPanel();
    
    mainPanel.setName("mainPanel"); // NOI18N
    Mi sono pori creato un JPanel separato dove ho tutte le mie componenti ed è quello che effettivamente vorrei visualizzare, quindi ho modificato il codice precedente cosi:
    codice:
    mainPanel = new myPanel();
    
    mainPanel.setName("mainPanel"); // NOI18N
    Non ottengo nessun errore, tranne il fatto che non viene visualizzata nessuna componente e non capisco il motivo. Posso dirvi che il myPanel() viene costruito correttamente, in quanto i vari messaggi che stampo per prova vengono visualizzati.
    Non capisco proprio come venirne a capo, spero che qualcuno abbia già risolto un problema di questo tipo.
    Grazie.
    Enigma

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

    Re: Problema con JPanel

    Originariamente inviato da enigmagame83
    non viene visualizzata nessuna componente e non capisco il motivo.
    Ma questo pannello è stato aggiunto in un "contenitore" (es. altro pannello, content-pane del JFrame ecc...)??
    C'è un: xyz.add(mainPanel);

    (o equivalente con un constraint come secondo parametro)
    ?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Problema con JPanel

    Originariamente inviato da andbin
    Ma questo pannello è stato aggiunto in un "contenitore" (es. altro pannello, content-pane del JFrame ecc...)??
    C'è un: xyz.add(mainPanel);

    (o equivalente con un constraint come secondo parametro)
    ?
    No, una chiamata di questo tipo non c'è.
    Il resto del codice generato da NetBeans per quanto riguarda il pannello è il seguente:
    codice:
            javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
            mainPanel.setLayout(mainPanelLayout);
            mainPanelLayout.setHorizontalGroup(
                mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 598, Short.MAX_VALUE)
            );
            mainPanelLayout.setVerticalGroup(
                mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 334, Short.MAX_VALUE)
            );
    preceduto da quello che ho postato prima, poi basta.
    Mi si stà creando, in testa, una confusione pazzesca, anche perchè la cosa è piuttosto banale.
    Enigma

  4. #4
    Dimenticavo, alla fine c'è anche questa:
    codice:
    setComponent(mainPanel);
    Enigma

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

    Re: Re: Re: Problema con JPanel

    Originariamente inviato da enigmagame83
    Il resto del codice generato da NetBeans per quanto riguarda il pannello è il seguente:
    codice:
            javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
            mainPanel.setLayout(mainPanelLayout);
            mainPanelLayout.setHorizontalGroup(
                mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 598, Short.MAX_VALUE)
            );
            mainPanelLayout.setVerticalGroup(
                mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 334, Short.MAX_VALUE)
            );
    Il solito codice-monnezza generato da un IDE ....
    Che tra l'altro non spiega tutto, nel senso che l'unica cosa che fa è settare nel mainPanel un GroupLayout (layout manager abbastanza complesso disponibile solo da Java 6) impostando dei gruppi con alcuni criteri.

    Originariamente inviato da enigmagame83
    codice:
    setComponent(mainPanel);
    Che non so cosa è/fa perché nei componenti standard di Swing (JFrame, ecc...) non c'è un metodo del genere. Quindi o è un metodo di istanza anche lui generato dall'IDE oppure la tua finestra non è un normale JFrame ma altro fornito dall'IDE (quindi potrebbe ereditare questo metodo).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.