barre de défilement et JTable - Java - Programmation
Marsh Posté le 09-06-2004 à 17:00:27
vire le setPreferredScrollableViewportSize.
Marsh Posté le 09-06-2004 à 17:06:55
mon cul, tu as un setPreferedKELKECHOSE quelquepart.
Marsh Posté le 09-06-2004 à 17:13:02
nan, c'est pas ça.
autre chose ? un setPAPREFFERED ?
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.
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...
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.