Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Mi autorispondo.... guardando negli esempi di Oracle sull'utilizzo di JTable ho capito...
    codice:
    table.setPreferredScrollableViewportSize(new Dimension(200, 200));

    il lupo perde il pelo ma non il vizio!
    http://www.pateam.eu
    http://pateam.altervista.org

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da miticogilles Visualizza il messaggio
    codice:
    table.setPreferredScrollableViewportSize(new Dimension(200, 200));
    Questo di norma, sappilo, non serve. E tra l'altro non ti risolve tutto .... anzi.

    Il tuo codice di prima è tecnicamente corretto ma c'è una questione importante: il JScrollPane l'hai messo in un JPanel che di serie ha un FlowLayout che fa "fluire" i componenti dimensionandoli alla loro dimensione "preferita".

    Nel tuo caso capita che il preferred size di JScrollPane sia ben maggiore dei 200x200 che imponi sul frame, quindi la tabella risulta "troncata". Vuoi risolvere correttamente e meglio? Metti JScrollPane direttamente nel content-pane di JFrame oppure imposta un BorderLayout al tuo Tabella1.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Nel tuo caso capita che il preferred size di JScrollPane sia ben maggiore dei 200x200 che imponi sul frame, quindi la tabella risulta "troncata". Vuoi risolvere correttamente e meglio? Metti JScrollPane direttamente nel content-pane di JFrame oppure imposta un BorderLayout al tuo Tabella1.
    codice:
    import javax.swing.*;
    import java.awt.*;
    public class Tabella1 extends JPanel
    {
        public Tabella1()
        {
            Object[][]cells = {{"0,0","0,1","0,2","0,3"},{"1,0","1,1","1,2","1,3"}};
            String[]columnNames = {"Colonna 1", "Colonna 2", "Colonna 3"};
            JTable table = new JTable(cells,columnNames);
            
            this.setLayout(new BorderLayout());
            JScrollPane scroll = new JScrollPane(table);
            this.add(scroll,BorderLayout.CENTER);
        }
        
    }
    class TabellinaFrame extends JFrame
    {
        public TabellinaFrame()
        {
            this.setSize(400,400);
            Container contentPane = this.getContentPane();
            Tabella1 tab = new Tabella1();
            contentPane.add(tab);
        }
        public static void main(String[]args)
        {
            TabellinaFrame f = new TabellinaFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setVisible(true);
        }
    }
    Il problema che mi ponevo e che mi avevi già risolto in un precedente post, ma io non avevo interpretato bene, era che volevo che venissero messe le barre di scorrimento qualora la tabella fosse di maggiore altezza rispetto alla finestra che la conteneva... Ecco il problema era che non vedevo le barre di scorrimento ... beh.... mi è bastato aggiungere altre 3 righe alla tabella e... magicamente le barre c'erano... scusa per il tempo che t'ho fatto perdere...

    il lupo perde il pelo ma non il vizio!
    http://www.pateam.eu
    http://pateam.altervista.org

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 © 2026 vBulletin Solutions, Inc. All rights reserved.