IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Nombres de lignes dans un tableau JTable


Sujet :

Composants Java

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut Nombres de lignes dans un tableau JTable
    Bonjour,

    Je veux faire un tableau avec JTable. J'arrive à faire le tableau dans un JPanel. Mon problème c'est le nombre de lignes dans le tableau, car l'exemple que j'ai pris sur le site de SUN, fixe le nombre de lignes dans le code. Ce qui n'est pas bon pour moi. Après plusieurs jours de recherche, je n'y arrive pas.

    Au secours.

    Voici mon code que j'ai transformé à partir du code du site de SUN.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    package tableau;
     
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
     
    public class Tableau  extends JPanel{
     
    	private static final long serialVersionUID = 1L;
    	private boolean DEBUG=false;
    	public String atitre;
    	public String[] columnNames;
    	public Object [][] data;
     
     
    	public Tableau(String at,String[] x, Object [][] y) { // 
    		// constructeur de tableau
    		super(new GridLayout(1,0));
    		this.atitre=at;
    		this.columnNames=x;
    		this.data=y;
     
    		final JTable table=new JTable(data, columnNames);
    		table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    		//table.setFillsViewportHeight(true);
    		if(DEBUG){
    			table.addMouseListener(new MouseAdapter(){
    				public void mouseClicked(MouseEvent e){
    					printDebugData(table);
    				}
    			});
    		}
    		// créer le scrool pane et l'ajouter le tableau.
    		JScrollPane scrollPane=new JScrollPane(table);
    		// Ajouter le scroll pane et l'ajouter au JPane.
    		add(scrollPane);
    	}
     
    	private void printDebugData(JTable table) {
     
    		int numRows=table.getRowCount();
    		int numCols=table.getColumnCount();
    		javax.swing.table.TableModel model=table.getModel();
     
    		System.out.println("Value of data");
    		for(int i=0;i<numRows;i++){
    			System.out.print("    row"+i+":");
    			for(int j=0;j<numCols;j++){
    				System.out.print("    "+model.getValueAt(i, j));
    			}
    			System.out.println();
    		}
    		System.out.println("----------------------------------");
    	}
     
    	/**
             * create the GUI and show it. For thread safety,
             * this method should be invoked from the
             * event-dispatching thread.
             */
    	private void createAndShowGUI(String x){
    		// Create and set up the window
     
    		JFrame frame=new JFrame(x);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		// Create and set up content pane.
    		Tableau newContentPane=new Tableau(atitre, columnNames, data);
    		newContentPane.setOpaque(true); // content panes must be opaque
    		frame.setContentPane(newContentPane);
     
    		// Display the window
    		frame.pack();
    		frame.setVisible(true);
    	}
     
    	public void main(String x){
    		//Schedule a job for the event-dispatching thread :
    		// creating and showing this application's GUI.
    		this.atitre=x;
    		javax.swing.SwingUtilities.invokeLater(new Runnable(){
    			public void run(){
    				createAndShowGUI(atitre);
    			}
    		});
     
    	}
     
    }
    Merci pour votre aide.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    si j'ai bien compris tu aimerais fixer le nombre de lignes visibles de ton tableau ?
    Si c'est le cas, essaye avec ca.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
         public void setVisibleRowCount(JTable table, int rows){ 
            int height = 0; 
            for(int row=0; row<rows; row++) {
                height += table.getRowHeight(row); 
            }
     
            table.setPreferredScrollableViewportSize(new Dimension( 
            		table.getPreferredScrollableViewportSize().width, 
                            height 
            )); 
        }
    Si ce n'est pas cela, peux tu expliquer un peu plus précisement ce que tu aimerais faire avec les lignes de ton tableau ?

Discussions similaires

  1. Compter nombres de lignes dans un tableau
    Par blanquettedeveau dans le forum VBScript
    Réponses: 2
    Dernier message: 08/07/2014, 12h41
  2. VBA - Charger un nombre de lignes dans un tableau
    Par 0zh0u dans le forum Général VBA
    Réponses: 4
    Dernier message: 14/05/2014, 09h53
  3. Réponses: 0
    Dernier message: 10/07/2013, 09h01
  4. [MySQL] Nombre de lignes dans un tableau
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/02/2007, 18h35
  5. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo