Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [GUI] JPanel Nasconde JList

    Ho creato una semplice form con bottoni, textbox e JList

    non appena compilo, il JPanel copre la JList lasciandomi vedere solamente i bottoni e le textBox.

    Se però provo a ridimensionare la finestra riappare la JList.

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

    Re: [GUI] JPanel Nasconde JList

    Originariamente inviato da smok3
    Ho creato una semplice form con bottoni, textbox e JList

    non appena compilo, il JPanel copre la JList lasciandomi vedere solamente i bottoni e le textBox.

    Se però provo a ridimensionare la finestra riappare la JList.
    Senza vedere il codice e senza sapere quale/i layout manager hai usato e come/dove hai disposto i componenti, sarebbe più facile vincere al superenalotto che rispondere alla tua domanda.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ho utlizzato netbeans per la realizzazione della GUI


    Layout -> AbsoluteLayout

    I componenti sono disposti all'interno di un unico JPanel



    Codice della GUI
    codice:
       private void initComponents() {
    
            mainPanel = new javax.swing.JPanel();
            idPal = new javax.swing.JTextField();
            labelId = new java.awt.Label();
            palList = new java.awt.List();
            label1 = new java.awt.Label();
            label2 = new java.awt.Label();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
            jButton3 = new javax.swing.JButton();
            jButton4 = new javax.swing.JButton();
            try {
                spotList =(java.awt.List)java.beans.Beans.instantiate(getClass().getClassLoader(), "disiporegia.DisipoRegiaView_spotList");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (java.io.IOException e) {
                e.printStackTrace();
            }
    
            org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(disiporegia.DisipoRegiaApp.class).getContext().getResourceMap(DisipoRegiaView.class);
            mainPanel.setBackground(resourceMap.getColor("mainPanel.background")); // NOI18N
            mainPanel.setMaximumSize(new java.awt.Dimension(430, 350));
            mainPanel.setMinimumSize(new java.awt.Dimension(430, 350));
            mainPanel.setName("mainPanel"); // NOI18N
            mainPanel.setPreferredSize(new java.awt.Dimension(430, 350));
            mainPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
    
            idPal.setText(resourceMap.getString("idPal.text")); // NOI18N
            idPal.setName("idPal"); // NOI18N
            mainPanel.add(idPal, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 10, 30, -1));
    
            labelId.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            labelId.setName("labelId"); // NOI18N
            labelId.setText(resourceMap.getString("labelId.text")); // NOI18N
            mainPanel.add(labelId, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, -1));
    
            palList.setBackground(resourceMap.getColor("palList.background")); // NOI18N
            palList.setName("palList"); // NOI18N
            palList.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mousePressed(java.awt.event.MouseEvent evt) {
                    palListMousePressed(evt);
                }
            });
            mainPanel.add(palList, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 80, 160, 190));
    
            label1.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            label1.setName("label1"); // NOI18N
            label1.setText(resourceMap.getString("label1.text")); // NOI18N
            mainPanel.add(label1, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 60, -1, 10));
    
            label2.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            label2.setName("label2"); // NOI18N
            label2.setText(resourceMap.getString("label2.text")); // NOI18N
            mainPanel.add(label2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, -1, -1));
    
            jButton1.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
            jButton1.setName("jButton1"); // NOI18N
            jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    jButton1MouseClicked(evt);
                }
            });
            mainPanel.add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 280, -1, -1));
    
            jButton2.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
            jButton2.setName("jButton2"); // NOI18N
            jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    jButton2MouseClicked(evt);
                }
            });
            mainPanel.add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 170, -1, -1));
    
            jButton3.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            jButton3.setText(resourceMap.getString("jButton3.text")); // NOI18N
            jButton3.setName("jButton3"); // NOI18N
            jButton3.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    jButton3MouseClicked(evt);
                }
            });
            mainPanel.add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 10, -1, -1));
    
            jButton4.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N
            jButton4.setText(resourceMap.getString("jButton4.text")); // NOI18N
            jButton4.setName("jButton4"); // NOI18N
            jButton4.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    jButton4MouseClicked(evt);
                }
            });
            mainPanel.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 10, -1, -1));
    
            spotList.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    spotListMouseClicked(evt);
                }
            });
            mainPanel.add(spotList, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, 150, 230));
    
            setComponent(mainPanel);
        }// </editor-fold>

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    a) Non uso e non conosco Eclipse/NetBeans e non conosco quel "suo" layout manager org.netbeans.lib.awtextra.AbsoluteLayout (anche se ovviamente posso immaginare come funziona).
    b) Se quello che hai postato è tutto codice auto-generato da NetBeans, beh, allora è una gran schifezza.
    c) Io suggerirei lo studio e l'utilizzo dei layout manager standard di AWT/Swing.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    perdonami ... ma se non sai rispondere o quanto meno se non hai le competenze (come descritto da te) non sprecare post forviando tutti quei utenti che magari in futuro potranno avere lo stesso problema

    ti rispondo velocemente, spero tanto tu non lo prenda come offesa...

    1.. Il codice generato da netbeans è una schifezza? manda una mail di protesta ad info@netbeans.org
    2.. Per chi realizza progetti grossi, netbeans fa guadagnare molto tempo... secondo te se fosse di facile soluzione avrei postato?
    3.. non conosci l'absoluteLayout... vorrà dire che forse dovrai riguardarti un po di javadoc


    Per il resto, spero tanto che il topic rimanga pulito senza altri interventi come quest'ultimo.

    Ritengo che il forum non sia una chat libera ma un luogo COSTRUTTIVO dove discutere, quindi atteniamoci al topic

    Chiusa parentesi

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da smok3
    perdonami ... ma se non sai rispondere o quanto meno se non hai le competenze (come descritto da te) non sprecare post forviando tutti quei utenti che magari in futuro potranno avere lo stesso problema
    A me sembravano più dei suggerimenti validi. Non è la prima volta che viene postato codice autogenerato da ambienti di tipo RAD che, lasciacelo dire, fa proprio pena: Io uso NetBeans, ma non lascio mai a lui il compito di scrivere il codice: quello lo scrivo io, così la manutenibilità aumenta.
    ti rispondo velocemente, spero tanto tu non lo prenda come offesa...

    1.. Il codice generato da netbeans è una schifezza? manda una mail di protesta ad info@netbeans.org
    Sarebbero mail inutili...
    2.. Per chi realizza progetti grossi, netbeans fa guadagnare molto tempo... secondo te se fosse di facile soluzione avrei postato?
    Se tu avessi scritto il codice manualmente, ti garantisco che avresti risparmiato molto più tempo: in questo modo non sei in grado di comprendere la normale logica di funzionamento del programma, perdi giorni interi a capire come si chiamano i vati oggetti che hai posizionato e alla fine scopri che l'autogenerazione del codice non fa assolutamente guadagnare tempo, ma, al contrario, ne fa perdere moltissimo.
    3.. non conosci l'absoluteLayout... vorrà dire che forse dovrai riguardarti un po di javadoc
    come ti è già stato detto, quel LayoutManager è proprietario di NetBeans, non fa parte del core standard del JDK... chi sa programmare in Java e conosce la Documentazione queste cose le sa...
    Per il resto, spero tanto che il topic rimanga pulito senza altri interventi come quest'ultimo.

    Ritengo che il forum non sia una chat libera ma un luogo COSTRUTTIVO dove discutere, quindi atteniamoci al topic

    Chiusa parentesi
    Perfettamente d'accordo: accetta le critiche che ti sono state mosse, anche perchè ti sono state mosse da una persona che reputo competente e con una lunga storia costruttiva su questo forum.

    Se vuoi continuare ad utilizzare il codice autogenerato, senza chiederti se c'è la possibilità di ottenere lo stesso risultato con uno sforzo minore e un guadagno nella leggibilità del codice, con conseguente risparmio di tempo, sei liberissimo di farlo. Ma se qualcuno obietta a questa tua scelta, consigliandoti di cambiare strada per facilitare la vita a te e a chi (come in questo caso, gli utenti del forum) potrebbe aiutarti, non farne un dramma.

    Per quel che riguarda il tuo problema, se avessi scelto di utilizzare i LayoutManager messi a disposizione dal core standard, invece di affiancarte un LayoutManager priprietario di cui solo NetBeans conosce il funzionamento, forse non avresti avuto questi problemi, che non è detto siano risolvibili, vista l'impossibilità di averne della documentazione, né la garanzia da parte di Sun del suo corretto funzionamento.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    per quanto scritto ... omissis ...


    per quanto riguard il layout, so benissimo che è proprietario di netbeans ma chi sa programmare sa che non cambi nulla visto che è una sorta di free con coordinate assolute... cmq


    ritornando a noi, ho seguito il tuo consiglio ed ho impostato un layout standard (il Free), ma purtroppo da lo stesso problema

    Carica il frame, fa vedere per una frazione di secondo i componenti e poi li nasconde, devo allargare l'immagine per farli riportare in primo piano

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Questo solitamente accade quando i componenti vengono aggiunti dopo il setVisible(true) sulla finestra o comunque dopo che il componente contenitore è stato visualizzato o aggiunto al suo parent.

    Se non è possibile spostare prima queste aggiunte o spostare dopo le visualizzazioni allora è necessario richiamare un validate() alla fine di queste operazioni, magari forzando anche un doLayout() e un repaint().


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Originariamente inviato da LeleFT
    Questo solitamente accade quando i componenti vengono aggiunti dopo il setVisible(true) sulla finestra o comunque dopo che il componente contenitore è stato visualizzato o aggiunto al suo parent.

    Se non è possibile spostare prima queste aggiunte o spostare dopo le visualizzazioni allora è necessario richiamare un validate() alla fine di queste operazioni, magari forzando anche un doLayout() e un repaint().


    Ciao.

    perfetto ora va.

    Thx per l'aiuto

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.