barre de défilement et JTable

barre de défilement et JTable - Java - Programmation

Marsh Posté le 09-06-2004 à 16:53:35    

Je voudrais qu'il y ait une barre de défilement horizontale qui apparaisse avec ma JTable. La barre verticale apparait mais pas l'horizontale.  
 
Je crée ma JTable et je la mets dans un JScrollPane.
 
JScrollPane j = new JScrollPane(tableau);      
tableau.setPreferredScrollableViewportSize(new Dimension(x, y));
 
Lorsque y est plus grand que la taille de ma fenêtre la barre verticale apparait. Mais pas avec x.

Reply

Marsh Posté le 09-06-2004 à 16:53:35   

Reply

Marsh Posté le 09-06-2004 à 17:00:27    

vire le setPreferredScrollableViewportSize.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-06-2004 à 17:04:49    

ça marche pas... fé iech

Reply

Marsh Posté le 09-06-2004 à 17:06:55    

mon cul, tu as un setPreferedKELKECHOSE quelquepart.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-06-2004 à 17:11:15    

oui pour la taille des colonnes  
 
setPreferredWidth(200);  

Reply

Marsh Posté le 09-06-2004 à 17:13:02    

nan, c'est pas ça.
 
autre chose ? un setPAPREFFERED ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-06-2004 à 17:13:56    

non plus... j'ai cherché je trouve pas...

Reply

Marsh Posté le 09-06-2004 à 17:21:19    

fait péter tout le code qui concerne la JTable et le JScrollBidule, on va regarder ça tranquilement.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-06-2004 à 08:56:58    

class Tableur2 extends JPanel implements TableModelListener
{
  Object[][] donnees;  
  String[] nomsColonnes;  
  JTable table;
  TableModel tableur;
 
  Tableur2(Object[][] d, String[] s, int num, int x, int y)
    {    
    donnees=d;
  nomsColonnes=s;
  table=new JTable(donnees, nomsColonnes);
  JScrollPane avecAsc = new JScrollPane(table);      
    //table.setPreferredScrollableViewportSize(new Dimension(x, y));
   add(avecAsc);
   
  tableur = table.getModel();
      tableur.addTableModelListener(this);
   if (num=='2') {
  System.out.println("num = 2" );
   
  int j=0;
   
  for (j=0;j<=9;j++) {
   
  TableColumn abc = table.getColumnModel().getColumn(j);  
   
  if (j == 0) {
  System.out.println("colonne 1" );
      abc.setPreferredWidth(200);  
     } else {
    System.out.println("colonne 2" );  
  JComboBox comboBox = new JComboBox();  
  comboBox.addItem(" " );
  comboBox.addItem("1" );  
  comboBox.addItem("2" );  
  comboBox.addItem("3" );
  comboBox.addItem("4" );
  comboBox.addItem("5" );
  comboBox.addItem("6" );
  comboBox.addItem("7" );  
    abc.setCellEditor(new DefaultCellEditor(comboBox));  
  abc.setPreferredWidth(2);
     }
  }
     
  if (num=='1') {
  System.out.println("num = 1" );
  TableColumn date = table.getColumnModel().getColumn(1);  
   
  JComboBox comboBox2 = new JComboBox();  
  comboBox2.addItem("01/04/04" );  
  comboBox2.addItem("02/04/04" );  
  comboBox2.addItem("03/04/04" );  
    date.setCellEditor(new DefaultCellEditor(comboBox2));  
  }
  }
 }
 
   
 public boolean isCellEditable(int row, int col) {
// toutes les cellules éditables :
return true;
}
 
   
  public void tableChanged(TableModelEvent e)  
    {            
      if (e.getType() != TableModelEvent.UPDATE) return;
      int ligne = e.getFirstRow();
      int colonne = e.getColumn();
      int i, somme = 0, nb = 0;
      String chaine;
 
      if ((colonne > 0) && (colonne <3))
 {
   for (i = 1; i < 3; i++)
     {
       try
  {
    chaine = (String)tableur.getValueAt(ligne, i);
    if (!chaine.equals("" ))
    {
      somme += Integer.parseInt(chaine);
      nb++;
    }
  }
       catch(NumberFormatException exc) {}
     }
   if (nb > 0)
     tableur.setValueAt(new Integer(somme/nb), ligne, 3);
   else tableur.setValueAt("", ligne, 3);
 }
   }
 
}
 
 
Excuse si le code te parait merdique mais je débute alors...
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed