Visualizzazione dei risultati da 1 a 7 su 7

Discussione: dimensione JScrollPane

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    53

    dimensione JScrollPane

    Buongiorno, ho un problema con JTable e JScrollPane...
    ho una tabella con 10righe e 8colonne aggiungendo uno scrollPane alla tabella oltre le dieci righe viene visualizzato dello spazio vuoto (prima della fine della tabella), intuitivamente dovrei diminuire le dimensioni dello scrollPane ma come posso fare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da rrt Visualizza il messaggio
    ho una tabella con 10righe e 8colonne aggiungendo uno scrollPane alla tabella oltre le dieci righe viene visualizzato dello spazio vuoto (prima della fine della tabella), intuitivamente dovrei diminuire le dimensioni dello scrollPane ma come posso fare?
    Innanzitutto bisogna vedere come è dimensionato/(posizionato) il JScrollPane. Cioè se imponi tu le dimensioni senza un layout manager oppure se è in layout manager e le sue dimensioni dipendono quindi da altri criteri.
    Ultima modifica di andbin; 02-04-2014 a 12:28
    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
    Oct 2013
    Messaggi
    53
    Ciao ho un JPanel con layout di tipo GridBagLayout....inserendo direttamente la tabella senza il JScrollPane viene visualizzata la tabella con le 10 righe se aggiungo un JScrollPane mi "allunga la tabella".

    Codice senza scrollPane
    codice:
    tabella = new JTable(10,8);
    regola= new GridBagConstraints();
            regola.gridx = 0;
            regola.gridy = 4;  
            regola.gridwidth = 3;             
            add(tabella, regola);
    //se invece utilizzo JScrollPane e lo aggiungo al posto di tabella add(scrollPane,regola) viene allungata
    vorrei che la barra di scorrimento verticale venga visualizzata quando la tabella possiede più di 10 righe(in questo caso è come se la tabella avesse 20-30 righe, ma io ho impostato il numero a 10)
    Ultima modifica di rrt; 02-04-2014 a 13:47

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da rrt Visualizza il messaggio
    Ciao ho un JPanel con layout di tipo GridBagLayout....inserendo direttamente la tabella senza il JScrollPane viene visualizzata la tabella con le 10 righe se aggiungo un JScrollPane mi "allunga la tabella".
    Se parliamo di dimensioni "preferite", allora le cose stanno nel seguente modo: la dimensione "preferita" del viewport (la "finestra" del JScrollPane, per intenderci) quando c'è dentro un JTable, è data dalla interfaccia Scrollable (implementata da JTable) e in particolare dal suo metodo getPreferredScrollableViewportSize() (c'è anche il setter ma specifico in JTable).
    Questa dimensione preferita non rispecchia la dimensione preferita del componente view (JTable). Per quanto ho già potuto notare, è più grande.

    Se tu vuoi che la dimensione "preferita" del viewport sia uguale a quella "preferita" di un JTable con 10x8 celle come l'hai costruito tu, allora:

    codice:
    tabella = new JTable(10,8);
    tabella.setPreferredScrollableViewportSize(tabella.getPreferredSize());
    Se il preferred size è rispettato dal JPanel e da chi lo contiene, ecc... e alla fine fai un pack() del frame, allora il risultato è che il JScrollPane è "giusto" per 10 righe di JTable e senza mostrare subito le scrollbar.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    53
    ciao ti ringrazio per l'aiuto però vorrei che le otto colonne non siano visibili tutte ma solo tramite la barra di scorrimento orizzontale
    con questo metodo risolvo la questione delle righe però mi si visualizzano tutte le colonne, avevo impostato la questione delle colonne
    con il metodo setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da rrt Visualizza il messaggio
    correi che le otto colonne non siano visibili tutte ma solo tramite la barra di scorrimento orizzontale
    E che vuol dire? Quante vuoi farne vedere? Esattamente N (es. 3)? O quante ci stanno in X pixel?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    53
    scusami grazie mille per l'aiuto ho risolto....

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.