Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    1

    [Java] Problema JScrollPane e JTable

    Ciao a tutti,
    ho un problema nel visualizzare in modo corretto la barra di scorrimento in una JTable.
    La riesco a visualizzare ma scorre verso il basso di pochissimo, e quindi gli altri dati che non rientrano nella schermata non riesco mai a visualizzarli a video.

    codice:
    public class TableView extends JPanel implements MouseListener {
    
    
        private TableModel tableModel;
        private JScrollPane scroll;
        private JFrame parentFrame;
        private JTable tableList;
        
        /**
         * Costruttore della classe che inizializza la tabella.
         */
        public TableView(JFrame pFrame) 
        {
            super();
            this.parentFrame = pFrame;
            tableModel = new TableModelLibreriaMultimedia();
            tableList = new JTable(tableModel);
            
                    int larghezza = parentFrame.getWidth() - parentFrame.getWidth() / 5;
            int altezza = parentFrame.getHeight() -parentFrame.getHeight() / 5;
            
                    tableList.setPreferredSize(new Dimension(larghezza, altezza));
                tableList.setPreferredScrollableViewportSize(tableList.getPreferredSize());
    
    
            scroll = new JScrollPane(tableList);
    
    
               scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    
    
            scroll.setPreferredSize(new Dimension(larghezza, altezza));
    
            Globals.tableList.addMouseListener(this);
            
                    add(scroll);
            setVisible(true);
    
    
        }

    Grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Loralyn Visualizza il messaggio
    codice:
                    int larghezza = parentFrame.getWidth() - parentFrame.getWidth() / 5;
            int altezza = parentFrame.getHeight() -parentFrame.getHeight() / 5;
    Questo non è per niente bello! Principalmente perché nel momento in cui stai costruendo appunto il tuo TableView, il tuo JFrame non ha ancora presumibilmente una dimensione valida/utile.
    Anche se arrivassi qui, in questo punto, con una dimensione sensata e utile del JFrame, tieni presente che la dimensione del frame comprende tutte le "decorazioni" (bordi, titolo, ecc...), quindi comunque in ogni caso non è poi così particolarmente utile usare tale dimensione per dimensionare cose interne al frame.

    Cerca di "ragionare" e lavorare di più in termini di layout manager.


    P.S.: nemmeno questo:
    Globals.tableList.addMouseListener(this);
    è particolarmente bello. Riguarda il "design" delle tue classi e denota che fa un pochino "acqua".
    Ultima modifica di andbin; 05-09-2014 a 12:35
    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.