[Risolto] JList che visualizza solo 15 righe

di il
12 risposte

[Risolto] JList che visualizza solo 15 righe

Cari amici,
sono alle prese con una questione che mi sembra di una banalità suprema, o almeno lo era in VB6.
Nelle mie prove sto facendo uso di varie JList.
Ora, ce n'è solo una che funziona come ci si aspetterebbe, ovvero che se vi carico un elenco di item più lungo dello spazio verticale disponibile per la visualizzazione, compare la barra di scorrimento verticale e quando mi sposto in giù con le freccette, le righe della lista scorrono in su e mi mostrano, una per volta le righe che prima erano nascoste.
Le altre JList invece, mi fanno scorrere solo 15 righe, dopodiche il cursore sparisce, i dati relativi alla riga selezionata vengono aggiornati, ma la lista non scrolla in su e non vedo le righe su cui mi sto muovendo.
Il fatto è che confrontando le proprietà delle varie liste (in NEtBeas) non noto alcuna differenza che possa giustificare un simile comportamento.

Riporto degli screenshot per chiarire meglio.
Nell'esempio ho 20 righe, che per semplicità riportano i numeri da 01 a 20,
Qui il cursore è sulla riga 5 e il campo descrizione riporta correttamente 05 ma se mi sposto sull'ultimo elemento della lista (il ventesimo) come si nota dall'immagine, la lista si è fermata alla riga 15. Qualcuno sa aiutarmi a risolvere questo mistero?

12 Risposte

  • Re: [Risolto] JList che visualizza solo 15 righe

    Strana come cosa. JList, se messo correttamente in un JScrollPane, "funziona" perfettamente.

    Quindi:
    - come viene creato e inserito nel layout il JList?
    - come vengono caricati i dati? (diciamo anche "quando": a seguito di un qualche evento?)
    - quale ListModel viene usato?
  • Re: [Risolto] JList che visualizza solo 15 righe

    Grazie Andrea per l'interessamento.
    Siccome come ambiente di sviluppo uso NetBeans 7.3.1 ti riporto le istruzioni che usa NetBeans per costruire la JList (che si chiama Lst1) e il jScrollPane1 che la contiene:
    
    private javax.swing.JScrollPane jScrollPane1;
    jScrollPane1 = new javax.swing.JScrollPane();
    	
    javax.swing.GroupLayout PanListLayout = new javax.swing.GroupLayout(PanList);
    PanList.setLayout(PanListLayout);
    PanListLayout.setHorizontalGroup(
      PanListLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
    );
    PanListLayout.setVerticalGroup(
      PanListLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE)
    );
    
    
    private javax.swing.JList Lst1;
    Lst1 = new javax.swing.JList();
    	Lst1.setModel(new javax.swing.AbstractListModel() {
      String[] strings = { "Item 1", "Item 2" };
      public int getSize() { return strings.length; }
      public Object getElementAt(int i) { return strings[i]; }
    });
    Lst1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
    Lst1.setMaximumSize(new java.awt.Dimension(32767, 32767));
    Lst1.setMinimumSize(new java.awt.Dimension(10, 10));
    Lst1.setName("Lst1"); // NOI18N
    Lst1.setPreferredSize(new java.awt.Dimension(150, 300));
    Lst1.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent evt) {
    	Lst1MouseClicked(evt);
      }
    });
    Lst1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
      public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
    	Lst1ValueChanged(evt);
      }
    });
    Lst1.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyReleased(java.awt.event.KeyEvent evt) {
    	Lst1KeyReleased(evt);
      }
    });
    jScrollPane1.setViewportView(Lst1);
    
    La Lst1 la carico tramite un metoto che chiamo come ultima istruzione del costruttore della jForm che contiene la JList, che popola un modello in questo modo:
    
    public DefaultListModel CaricaLista(String tabella, String campo) {
    
        int idKey;
        String xx = "SELECT Id, " + campo + " FROM " + tabella;
        String ww = "", valore;
        DefaultListModel modLista = new DefaultListModel();
        ResultSet rs1;
    	
    	ww = ww + " ORDER BY " + campo;
        modLista.clear();
        try {
          rs1 = sqlConn.executeQuery(xx + ww + ";");
          while (rs1.next()) {
            idKey = rs1.getInt("Id");
            valore = rs1.getString(campo);
            modLista.addElement(new RigaLista(idKey, valore));
          } 
          rs1.close();
        }
        catch (SQLException ex) {
          JOptionPane.showMessageDialog(null, ex.getMessage());
          Logger.getLogger(DbMgr.class.getName()).log(Level.SEVERE, null, ex);
        }
        return(modLista);
    }                                            
    
    Nella JFrame chiamante faccio:
    
    DefaultListModel modelloLista = new DefaultListModel();
    modelloLista = CaricaLista();
    Lst1.setModel(modelloLista);
    
    La RigaLista mi serve per ricavare l'Id (chiave primaria della tabella associata) del record selezionato nella lista.

    
    public class RigaLista {
      private int myIndice = 0;
      private String myTesto = "";   // Contenuto della riga della lista.
      public RigaLista(int indice, String testo) {                    
        this.myIndice = indice;
        this.myTesto = testo;
      }
      public int getIndice() {
        return this.myIndice;
      }
      public String getTesto() {
        return this.myTesto;
      }
      @Override
      public String toString() {
        return this.myTesto;
      }
    }
    
    Inoltre la CaricaLista viene anche chiamata ogni volta che dalla jFrame principale aggiungo, modifico o cancello un record della tabella del db associata.

    Ho cercato di riportare le parti salienti, perché in realtà ci sarebbe di mezzo un'altra classe che è la parte di definizione dei dati del db, che valorizza le variabili "tabella" e "campo", e restituisce poi il modello creato dalla CaricaLista.

    Se non sono stato chiaro chiedi pure.
  • Re: [Risolto] JList che visualizza solo 15 righe

    ZioCrick ha scritto:


    Lst1.setMaximumSize(new java.awt.Dimension(32767, 32767));
    Lst1.setMinimumSize(new java.awt.Dimension(10, 10));
    Lst1.setPreferredSize(new java.awt.Dimension(150, 300));
    Queste 3 cose semplicemente NON ci vanno quando JList è (come tipico) come view in JScrollPane.


    P.S. il CaricaLista mi pare funzionalmente corretto, sebbene non sia proprio ben scritto.
  • Re: [Risolto] JList che visualizza solo 15 righe

    andbin ha scritto:


    Queste 3 cose semplicemente NON ci vanno quando JList è (come tipico) come view in JScrollPane.
    MA SEI UN MITOOOOO!!!!
    Io non ci avrei mai pensato! Anche perché fa parte del codice generato da NetBeans e quindi pensavo fosse formalmente e strutturalmente corretto.
    Siccome Netbeans non me le lasciava modificare/eliminare, l'ho chiuso e le ho tolte tramite un semplice editor di testo, e le JList si sono messe a funzionare correttamente!!!
    Poi ho verificato il codice generato per la JList che funzionava correttamente e quelle righe non ci sono. In realtà quella lista è a dimensioni fisse, mentre quelle che non funzionavano sono inserite in una form a dimensioni variabili, quindi anche loro si allungano e allargano.

    andbin ha scritto:


    P.S. il CaricaLista mi pare funzionalmente corretto, sebbene non sia proprio ben scritto.
    Allora già che hai fatto 30 fai 31; mi dici come potrei migliorarlo?
    Se ti riferisci alle stringhe con cui costruisco la query, in effetti ne ho tolto un pezzo, che era opzionale (in base ad un terzo argomento del CaricaLista, che non ho riportato qui), ed è il motivo per cui c'è ww = ww + ... perché prima di questa riga ce n'è un'altra che introduce un condizione su un campo, che per forza deve andare prima della "ORDER BY".
  • Re: [Risolto] JList che visualizza solo 15 righe

    ZioCrick ha scritto:


    Se ti riferisci alle stringhe con cui costruisco la query, in effetti ne ho tolto un pezzo, che era opzionale (in base ad un terzo argomento del CaricaLista, che non ho riportato qui), ed è il motivo per cui c'è ww = ww + ... perché prima di questa riga ce n'è un'altra che introduce un condizione su un campo, che per forza deve andare prima della "ORDER BY".
    Sì, anche le stringhe intendevo ma c'è ben altro. Le variabili, xx, ww dicono ben poco (ma questo è il meno).

    - Da Java 7, DefaultListModel è una classe "generica", quindi ovunque lo dichiari dovresti parametrizzarlo. Nel tuo caso DefaultListModel<RigaLista>
    - Il modLista.clear() NON serve (hai appena creato un DefaultListModel, è ovviamente già vuoto)
    - Il rs1.close() andrebbe fatto comunque, in qualunque caso. Quindi serve un try-finally
    - Il ";" finale, detto in generale, non serve nelle query eseguite con executeQuery.

    Poi altro minore:
    - Nella espressione del return, le ( ) di per sé non servono.
    - Cerca di dichiarare le variabili nello scope più piccolo possibile. Detto in altro modo: non sprecare righe solo per dichiarare variabili.
  • Re: [Risolto] JList che visualizza solo 15 righe

    andbin ha scritto:


    - Da Java 7, DefaultListModel è una classe "generica", quindi ovunque lo dichiari dovresti parametrizzarlo. Nel tuo caso DefaultListModel<RigaLista>
    - Il modLista.clear() NON serve (hai appena creato un DefaultListModel, è ovviamente già vuoto)
    - Il rs1.close() andrebbe fatto comunque, in qualunque caso. Quindi serve un try-finally
    - Il ";" finale, detto in generale, non serve nelle query eseguite con executeQuery.
    Grazie mille! Ottime indicazioni!
    In particolare il fatto di parametrizzare il DefaultListModel.
    Forse potrebbe essere la causa del messaggio:
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details

    che mi compare quando lancio il "Clean and build project"?
    E' da parecchio che cerco di capire come risolverlo e in base ad altre indicazioni che ho trovato sul web dove si parlava di parametrizzare gli ArrayList, io li ho parametrizzati tutti, ma ottengo ancora la segnalazione.

    andbin ha scritto:


    - Nella espressione del return, le ( ) di per sé non servono.
    Infatti ho dei punti in cui le ho usate e altri no.
    Ma allora perché vanno bene entrambe le sintassi?
    Ci sono forse dei casi in cui l'uso delle parentesi è necessario?



    PERO' ORA E' SUCCESSA UNA COSA TREMENDA!!!!!!
    Netbeans, dopo la seconda chiusura e riattivazione, mi ha rimesso le istruzioni che avevo eliminato!!! Così le JList hanno ripreso a comportarsi in modo anomalo.
    Come faccio ad evitare che Netbeans aggiunga le istruzioni suddette?
  • Re: [Risolto] JList che visualizza solo 15 righe

    ZioCrick ha scritto:


    Forse potrebbe essere la causa del messaggio:
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details
    Sì, esatto.

    ZioCrick ha scritto:


    E' da parecchio che cerco di capire come risolverlo e in base ad altre indicazioni che ho trovato sul web dove si parlava di parametrizzare gli ArrayList, io li ho parametrizzati tutti, ma ottengo ancora la segnalazione.
    Se un tipo (interfaccia o classe) è "generico" (nel senso dei generics di Java 5+) andrebbe sempre parametrizzato opportunamente.

    ZioCrick ha scritto:


    Infatti ho dei punti in cui le ho usate e altri no.
    Ma allora perché vanno bene entrambe le sintassi?
    Ci sono forse dei casi in cui l'uso delle parentesi è necessario?
    Se si tratta di espressioni (composizione di valori con tutti i vari operatori), le parentesi servono di norma per cambiare la precedenza delle operazioni. Ma possono essere omesse, se sono superflue cioè se togliendole il significato della espressione non cambia. Es.:

    int r = (x & 0xFF) ^ (y & 0xFF);

    La "and" (&) ha comunque priorità maggiore rispetto allo "xor" (^), quindi si può riscrivere

    int r = x & 0xFF ^ y & 0xFF;

    e il significato (e risultato) non cambia.

    Mentre invece:

    int n = (int) Math.random() * 30;

    questa scritta così è sbagliata. Il cast ha priorità maggiore rispetto alla moltiplicazione. Quindi così come appena scritta, prima invoca random(), poi fa il cast, poi moltiplica per 30. Ma random() ritorna sempre < 1.0 (mai 1.0) e il cast tronca i decimali. Quindi hai sempre 0. E 0 * 30 dà ovviamente 0. Quindi scritta così non serve.

    Va riscritta così:

    int n = (int) (Math.random() * 30);

    Perché prima voglio moltiplicare per 30, ottenendo un valore casuale tra 0 (incluso) e 30 (escluso) e poi solo dopo convertire ad int.

    ZioCrick ha scritto:


    Netbeans, dopo la seconda chiusura e riattivazione, mi ha rimesso le istruzioni che avevo eliminato!!! Così le JList hanno ripreso a comportarsi in modo anomalo.
    Come faccio ad evitare che Netbeans aggiunga le istruzioni suddette?
    Le tre righe indicate prima sono relative a 3 proprietà di JList: "minimumSize", "maximumSize" e "preferredSize". Apri l'editor "visuale" della interfaccia e guarda tra le proprietà di quel JList. Se ci sono queste proprietà, toglile (azzera, rimuovi il valore ... non so ora come presenta i valori, non ho un NetBeans a portata).
  • Re: [Risolto] JList che visualizza solo 15 righe

    Caro Andrea ti ringrazio di cuore per la pazienza e la disponibilità che mi stai riservando.

    andbin ha scritto:


    Se un tipo (interfaccia o classe) è "generico" (nel senso dei generics di Java 5+) andrebbe sempre parametrizzato opportunamente.
    Ho parametrizzato tutte le DefaultListModel ma ancora ottengo il Warning, per cui mi sono stufato, e per capire dove sta il problema, siccome non so come compilare da Netbeans con il parametro -Xlint:unchecked, ho provato dal terminale di windows con:
    javac -Xlint:unchecked nomeMiaClasse.java
    ma ottengo una marea di errori per tutti i metodi dei package di cui eseguo l'import.
    Sai come compilare un applicativo che fa uso di tanti package che stanno in differenti cartelle rispetto a quella della classe di partenza?

    andbin ha scritto:


    Se si tratta di espressioni (composizione di valori con tutti i vari operatori), le parentesi servono di norma per cambiare la precedenza delle operazioni.
    Chiedo scusa ma mi sono espresso male: l'uso delle parentesi per cambiare la precedenze delle operazioni mi è chiarissima.
    Io intendevo che siccome da quello che ho capito fin'ora, Java è un linguaggio molto rigoroso e ogni istruzione ha una sintassi ben precisa, mi meravigliavo che l'istruzione return potesse ammettere l'uso delle parentesi facoltativo, per cui pensavo ci fosse un caso in cui le parentesi si rendessero necessarie, al di la dell'uso per le priorità tra operatori.
    Probabilmente mi sono fatto traviare da qualche esempio scaricato dal web in cui venivano usate le parentesi anche per una singola variabile di ritorno.
    Però la tua spiegazione mi è stata utile perchè non sapevo che il cast avesse la priorità maggiore.

    andbin ha scritto:


    Apri l'editor "visuale" della interfaccia e guarda tra le proprietà di quel JList. Se ci sono queste proprietà, toglile (azzera, rimuovi il valore ... non so ora come presenta i valori, non ho un NetBeans a portata).
    Purtroppo Netbeans non mi permette di eliminare quelle proprietà dalla UI.
    Ho provato ad impostarle tutte a 0 ma non cambia nulla.
    Se nessuno sa come evitare che Netbeans le imponga, io sono disposto a cambiare ambiente di sviluppo, perché questa cosa mi sembra veramente un'ostiata indicibile.
    Puoi consigliarmi un altro ambiente free che funzioni sia in ambiente Linux che su Windows (in particolare XP)?
  • Re: [Risolto] JList che visualizza solo 15 righe

    ZioCrick ha scritto:


    Ho parametrizzato tutte le DefaultListModel ma ancora ottengo il Warning, per cui mi sono stufato
    Evidentemente ci sono punti che non hai considerato. Basta che guardi bene dove NetBeans ti indica il warning, leggi (possibilmente) il messaggio del warning e così capisci cosa fare. Sono cose che dovresti comunque cercare di fare, invece di "gettare la spugna" così facilmente.

    ZioCrick ha scritto:


    siccome non so come compilare da Netbeans con il parametro -Xlint:unchecked
    Non lo so nemmeno io, non uso/conosco bene NetBeans. Può darsi che ci sia una opzione globale e/o "per progetto" ma alla fin fine basta fare un "giro" sul IDE, cosa che comunque andrebbe fatta per saperlo usare e configurare.

    ZioCrick ha scritto:


    ho provato dal terminale di windows con:
    javac -Xlint:unchecked nomeMiaClasse.java
    ma ottengo una marea di errori per tutti i metodi dei package di cui eseguo l'import.
    Sai come compilare un applicativo che fa uso di tanti package che stanno in differenti cartelle rispetto a quella della classe di partenza?
    Se ci sono i package di mezzo, compilare "a mano" con javac è solamente un pelino più ostico che senza package.

    Se una classe Pippo ha package com.esempio, il sorgente dovrebbe stare sotto una com\esempio (uso \ riferito a Ms Windows), quindi es.

    Xyz\com\esempio\Pippo.java

    Xyz è una qualunque directory. NON importa quale/dove sia. E' la directory che contiene il package "radice" (es. la "com").

    Basta stare nella Xyz:

    cd Xyz
    javac -cp . com\esempio\Pippo.java

    Ho messo -cp . per esplicitare che la directory corrente (Xyz) sia in classpath.

    Stare come directory corrente nella "esempio" e poi fare il javac passando solo Pippo.java NON è corretto in generale se ci sono più sorgenti sotto uno/più package.

    Comunque compilare "a mano" con javac dei progetti un pochino "complessi" con package di mezzo, va bene principalmente per scopi didattici. Giusto all'inizio per capire come funzionano i package, classpath ecc... Poi conviene usare o un IDE o al limite uno strumento di build (Ant, Maven, ecc..).

    ZioCrick ha scritto:


    mi meravigliavo che l'istruzione return potesse ammettere l'uso delle parentesi facoltativo
    Nel return le parentesi NON sono parte del return. Il return in generale ha le forme (senza/con valore):

    return;
    return espressione;

    E espressione può essere una qualunque espressione, anche complessa/forbita quanto vuoi, purché dia correttamente il valore da restituire. E può contenere parentesi necessarie o "superflue".

    Ma fare:

    return (variabile);

    semplicemente non serve. Le parentesi non danno nulla in più alla espressione.

    ZioCrick ha scritto:


    Però la tua spiegazione mi è stata utile perchè non sapevo che il cast avesse la priorità maggiore.
    Il cast ha una priorità maggiore di molti altri operatori (tutti quelli matematici e logici). Ci sono poche cose più prioritarie del cast. Basta che cerchi in rete la tabellina della precedenza degli operatori in Java, la trovi un po' ovunque.

    ZioCrick ha scritto:


    Purtroppo Netbeans non mi permette di eliminare quelle proprietà dalla UI.
    Ho provato ad impostarle tutte a 0 ma non cambia nulla.
    No, 0 no. Vuol dire dargli comunque un valore. Magari lasciarlo vuoto? Prova.
    Al limite provo a mettere NetBeans su uno dei miei pc e verifico ...
  • Re: [Risolto] JList che visualizza solo 15 righe

    andbin ha scritto:


    Evidentemente ci sono punti che non hai considerato. Basta che guardi bene dove NetBeans ti indica il warning, leggi (possibilmente) il messaggio del warning e così capisci cosa fare. Sono cose che dovresti comunque cercare di fare, invece di "gettare la spugna" così facilmente.
    Anche in questo caso mi sono espresso male.
    Non intendevo "gettare la spugna", ma proprio perché mi sono stufato di vedere sempre quel messaggio, ho deciso di capirne di più cercando di compilare a mano un progetto con il qualificatore -Xlint:unchecked, che se ho capito bene dovrebbe evidenziare i punti che causano i warning, perché Netbeas non li indica, ma da solo il messaggio in cui dice di ricompilare con il qualificatore -Xlint:unchecked.

    Ho provato come hai detto tu a lanciare il javac dalla cartella capostipite ma non cambia nulla.

    Mi spiego:
    Ho la cartalla "Java" da cui partono tutte le cartelle dei progetti Netbeans, strutturate come segue:
    I nomi sono di fantasia.

    Java\ProgettoA\src\MioPagkage\ClassePrincipale.java
    Java\ProgettoA\src\MioPagkage\MiaClasse1.java
    Java\ProgettoA\src\MioPagkage\MiaClasse2.java
    Java\ProgettoB\src\Utility\Generale.java
    Java\ProgettoB\src\Utility\IniMgr.java
    Java\ProgettoB\src\Database\dbMgr.java
    Java\ProgettoC\src\Windows\WinMgr.java
    Java\ProgettoC\src\Windows\Liste.java

    dove "ProgettoA", "ProgettoB" e "ProgettoC" sono i nomi scelti da me per i progetti (non sono quelli reali).
    "src" è una cartella creata da Netbeans,
    "MioPagkage", "Utility", "Database" e "Windows" sono i nomi che ho scelto io per i package.

    Ora, per esempio, ClassePrincipale (quella che devo compilare) fa riferimento a MiaClasse1, MiaClasse2
    e importa Utility\Generale, Database\dbMgr e Windows\WinMgr

    Quindi mi sono posizionato nella Java e ho dato il comando:
    javac -cp -Xlint:unchecked ProgettoA\src\MioPagkage\ClassePrincipale.java

    ma dice che non trova i package definiti nelle import e quindi mi da un errore per ogni oggetto definito nei pacchetti importati dicendo "error: cannot find symbol".

    andbin ha scritto:


    No, 0 no. Vuol dire dargli comunque un valore. Magari lasciarlo vuoto? Prova.
    Al limite provo a mettere NetBeans su uno dei miei pc e verifico ...
    Ho provato a lasciare vuoti i valori de parametri "minimumSize", "maximumSize" e "preferredSize" ma Netbeans me lo impedisce.
    Li vuole valorizzati!
    A questo punto non so che fare.

    Hai qualche altro ambiente di sviluppo da consigliarmi?
    Che funzioni sia su Linux che su windows.
  • Re: [Risolto] JList che visualizza solo 15 righe

    Ho messo su un mio PC il NetBeans, l'ultimo attuale, 10.0.

    ZioCrick ha scritto:


    Non intendevo "gettare la spugna", ma proprio perché mi sono stufato di vedere sempre quel messaggio, ho deciso di capirne di più cercando di compilare a mano un progetto con il qualificatore -Xlint:unchecked, che se ho capito bene dovrebbe evidenziare i punti che causano i warning, perché Netbeas non li indica, ma da solo il messaggio in cui dice di ricompilare con il qualificatore -Xlint:unchecked.
    Proprietà del progetto (tasto destro mouse su nome progetto --> Properties) poi nella dialog vedi la sezione Build -> Compiling
    Al fondo di quella pagina di configurazione c'è l'opzione "Additional Compiler Options"
    E sotto il field c'è pure l'esempio (e.g. -Xlint:unchecked)
    Più di così ....

    Poi sempre nella dialog delle opzioni del progetto, vedi la sezione Hints, scegli "Use project-specific options" e poi marca "Standard Javac Warning" nella lista sottostante.

    Fai un bel clean+rebuild. Ed infine apri la vista "Action Items" (menù Window -> Action Items). Dovresti vedere la lista dei warning.

    ZioCrick ha scritto:


    Ho provato come hai detto tu a lanciare il javac dalla cartella capostipite ma non cambia nulla.

    Quindi mi sono posizionato nella Java e ho dato il comando:
    javac -cp -Xlint:unchecked ProgettoA\src\MioPagkage\ClassePrincipale.java
    Non è comunque corretto. Dovresti fissare bene le idee su package e classpath.

    ZioCrick ha scritto:


    Ho provato a lasciare vuoti i valori de parametri "minimumSize", "maximumSize" e "preferredSize" ma Netbeans me lo impedisce.
    Li vuole valorizzati!
    Ho provato a fare un form e a metterci dentro un JList. Le dimensioni non sono strettamente obbligatorie. Se ad esempio per preferredSize vedi scritto es. [400, 300] cancellalo e dai invio. Dovrebbe metterti scritto null nella vista "Properties". Il setPreferredSize lo inserisce lo stesso nel codice ma passa null. Che è equivalente indicare di non settare nulla, ovvero come è di default.
    Prova.
  • Re: [Risolto] JList che visualizza solo 15 righe

    andbin ha scritto:


    Se ad esempio per preferredSize vedi scritto es. [400, 300] cancellalo e dai invio. Dovrebbe metterti scritto null nella vista "Properties". Il setPreferredSize lo inserisce lo stesso nel codice ma passa null. Che è equivalente indicare di non settare nulla, ovvero come è di default.
    Guarda Andrea ... mi vergogno come un vermicello
    Io cercavo di cambiare i valori tramite il pulsante a destra (quello con i ...) e nella dialog che compare non mi permetteva di cancellare i valori.
    Non ho proprio pensato a cancellare e dare invio direttamente nei campi delle proprietà.

    Non parliamo poi delle indicazioni che mi hai dato sulle "Additional Compiler Options"
    Mi sprofonderei sottoterra.
    In effetti con quell'opzione ho scoperto la causa di alcuni warning e li ho risolti, ma ce ne sono altri che, al momento mi risultano incomprensibili, però ci voglio lavorare su e se poi non risolvo aprirò un'altra discussione ...

    Questa la posso considerare definitivamente risolta!

    Grazie infinite per la tua disponibilità.
Devi accedere o registrarti per scrivere nel forum
12 risposte