Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    79

    Ridimensionare JScrollPane contenete JTable

    Dovrei creare una sorta di rubrica in Java con una tabella, per esercizio.. l'unico problema è che quando inserisco una JTable in un JScrollPane, mi si viene a creare uno spazio vuoto sotto alla tabella, che di conseguenza va a spingere più in basso gli altri widget, così intendo:

    Senza titolo-1.jpg

    come posso fare per far adattare lo spazio inutilizzato sotto alla grandezza della mia tabella?
    il pezzettino di codice riguardo al TableView è il seguente:

    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package contatto;
    
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    
    
    /**
     *
     * @author Gianluca
     */
    public class MyTableView extends JPanel implements ActionListener{
        JTextField f1, f2;
        JButton b1;
        Contatto[] elementi;
        
        public MyTableView(Contatto[] l){
            super();
            this.elementi = l;
            MyTableModel model = new MyTableModel(elementi);
            JTable table = new JTable(model);
            JScrollPane scroll = new JScrollPane(table);
    
    
            f1 = new JTextField(25);
            f2 = new JTextField(25); 
            f2.setEditable(false);
            b1 = new JButton("Ricerca");
            
            add(scroll);
            add(f1);
            add(b1);
            add(f2);
            
            b1.addActionListener(this);
        }
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
            String parola_in = f1.getText().toLowerCase();
            StringBuilder parola_out = new StringBuilder();
            parola_out.append("Trovato: ");
            for ( int i = 0; i < elementi.length; i++ ){
                if (elementi[i].nome.toLowerCase().contains(parola_in) || elementi[i].cognome.toLowerCase().contains(parola_in)){
                    parola_out.append(elementi[i].nome);
                    parola_out.append(" ");
                    parola_out.append(elementi[i].cognome);
                    break;
                }
            }
            f2.setText(parola_out.toString());
        }
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da HeroGian Visualizza il messaggio
    Dovrei creare una sorta di rubrica in Java con una tabella, per esercizio.. l'unico problema è che quando inserisco una JTable in un JScrollPane, mi si viene a creare uno spazio vuoto sotto alla tabella, che di conseguenza va a spingere più in basso gli altri widget
    La tua classe MyTableView estende JPanel, ovvero è un "pannello". In JPanel il layout manager predefinito è un FlowLayout che, come dice il nome, fa "fluire" i componenti dall'alto verso il basso, da sinistra a destra. Esattamente come fa un word processor con le parole o come certe pagine web per cui ridimensionando la finestra vedi che le parole "fluiscono" allungando o meno il documento. Evidentemente non è questo che ti serve.

    Quote Originariamente inviata da HeroGian Visualizza il messaggio
    come posso fare per far adattare lo spazio inutilizzato sotto alla grandezza della mia tabella?
    Innanzitutto devi aver ben chiaro come devono disporsi i componenti, come devono spartirsi lo spazio, ecc...
    Questo non l'hai precisato, a parte dire che vuoi sfruttare lo spazio inutilizzato sotto.

    Devi avere anche ben chiaro quali sono i layout manager principali e quali sono le loro regole e concetti. FlowLayout (già detto sopra), BorderLayout, GridLayout, GridBagLayout, CardLayout e BoxLayout (di Swing) sono quelli più comuni. Generalmente riesci a fare il 99% delle interfacce utente utilizzando uno o più di questi layout manager, tipicamente "inscatolando" componenti dentro contenitori, dentro altri contenitori, ecc....

    I layout manager GroupLayout e SpringLayout entrambi di Swing, sono complicatissimi, quindi in genere sconsigliabili se si scrive il codice "a mano".
    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.