Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Aiuto con JScrollPane

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    14

    Aiuto con JScrollPane

    Ciao a tutti,
    premetto che sto ancora imparando java, quindi dovrete essere pazienti se non ci arrivo subito.
    Ho un JScrollPane che non scorre anche se il suo contenuto è troppo grande per essere visualizzato. Dentro il mio JScrollPane c'è un pannello che contiene un numero variabile di altri pannelli, che vengono aggiunti dall'utente. Può essere un problema di layout?
    Grazie.

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

    Re: Aiuto con JScrollPane

    Originariamente inviato da Becks
    Ho un JScrollPane che non scorre anche se il suo contenuto è troppo grande per essere visualizzato. Dentro il mio JScrollPane c'è un pannello che contiene un numero variabile di altri pannelli, che vengono aggiunti dall'utente. Può essere un problema di layout?
    Grazie.
    Ciao. Descrivi meglio la questione, in particolare come hai impostato il JScrollPane, quale layout manager usa il pannello. Magari mostrando pezzi significativi del codice.
    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
    Dec 2011
    Messaggi
    14
    In pratica il mio programma deve visualizzare una classifica, ogni ipotetica riga (che corrisponde ad un pannello) contiene il nome e il punteggio della squadra. Non so però quante squadre ci siano all'inizio e il pannello potrebbe non contenerle tutte quindi ho pensato di inserirlo in un JScrollPane.

    Il JScrollPane viene inserito in un JFrame, che ha il BorderLayout di default. Anche al JScrollPane ho lasciato il layout di default, mentre con il pannello interno ho provato sia con un GridLayout sia con un layout nullo, ma non credo sia lì il problema.
    Ho provato a visualizzare le barre di scorrimento sempre ma non mi permettono mai di scorrere il pannello.

    codice:
    // ripulisco il pannello
    center.removeAll();
    
    // inserisco le squadre nel pannello
    JPanel[] panels = new JPanel[squadre.size()];
    
    center.setLayout(null);
    
    for (int i = 0; i < panels.length; i++) {
    	panels[i] = new JPanel();
    	panels[i].setLayout(new GridLayout(1,2));
    
    	if (i%2 == 0)
    		panels[i].setBackground(Color.white);
    	else
    		panels[i].setBackground(Color.lightGray);
    
    	panels[i].add(new JLabel((String) squadre.elementAt(i), JLabel.CENTER));
    	panels[i].add(new JLabel(punti.elementAt(i).toString(), JLabel.CENTER));
    
    	panels[i].setBounds(0,i*30,getWidth(),30);
    	center.add(panels[i]);
    }
    
    centerScroll = new JScrollPane(center);
    
    // aggiungo il pannello scorrevole alla finestra dopo aver rimosso quello inserito precedentemente
    try {
    	cp.remove(2);
    }
    catch(ArrayIndexOutOfBoundsException e) {}
    cp.add(centerScroll);
    Allora:
    - panels è l'array che contiene i pannelli da inserire in quello centrale, quelli con il nome e i punti
    - center è il pannello centrale
    - centerScroll è il JScrollPane che contiene il pannello centrale

    Credo che l'errore sia qui da qualche parte.

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.