1 pièce(s) jointe(s)
Jtable et JScrollPane dans un Applet
Bonjour,
J'ai crée un applet dans lequel on doit pouvoir visualiser (dans une Jtable) une liste des membres avec la possibilité d'ajouter un nouveau membre(JButton).
J'ai crée un JPanel dans lequel se trouve la JTable et le JButton.
Mon problème est qu'en rajoutant la table et le bouton au panneau(JPanel) je n'ai qu'une barre de défilement horizontale(dont en fait j'ai pas besoin puisque je peux dimensionner mon applet) mais je n'ai pas de barre de défilement verticale.
Voici mon code :
Code:
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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
package btm;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTable;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import btm.Membre;
public class AfficheMembres extends JApplet implements TableModelListener {
private static final long serialVersionUID = 1L;
public class CenterTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public CenterTableCellRenderer() {
setHorizontalAlignment(CENTER);
setVerticalAlignment(CENTER);
}
}
public AfficheMembres() {
//super();
JPanel panel = new JPanel();
FlowLayout flowLayout = (FlowLayout) panel.getLayout();
flowLayout.setAlignment(FlowLayout.RIGHT);
getContentPane().add(panel, BorderLayout.CENTER);
new TraitementXML();
Object[][] donnees;
Vector<Membre> membres = TraitementXML.listeMembres();
String[] entetes = {"N°", "Prénom", "Nom", "Tél", "e-mail","Actif"};
donnees = new Object[membres.size()][entetes.length];
for(int i=0;i<membres.size();i++)
{
donnees[i][0] = i+1;
donnees[i][1] = membres.get(i).prenom;
donnees[i][2] = membres.get(i).nom;
donnees[i][3] = membres.get(i).tel;
donnees[i][4] = membres.get(i).mail;
donnees[i][5] = Boolean.valueOf(membres.get(i).actif).booleanValue();
}
DefaultTableModel tableModel = new DefaultTableModel(donnees, entetes);
tableModel.addTableModelListener( this );
JTable table = new JTable(tableModel) {
private static final long serialVersionUID = 1L;
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return Integer.class;
case 1:
return String.class;
case 2:
return String.class;
case 3:
return String.class;
case 4:
return String.class;
case 5:
return Boolean.class;
}
return null;
}
};
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn column = null;
for (int i = 0; i < 6; i++) {
column = table.getColumnModel().getColumn(i);
switch (i) {
case 0:
column.setPreferredWidth(20);
break;
case 1:
column.setPreferredWidth(100);
break;
case 2:
column.setPreferredWidth(120);
break;
case 3:
column.setPreferredWidth(100);
break;
case 4:
column.setPreferredWidth(150);
break;
case 5:
column.setPreferredWidth(30);
break;
}
}
table.getColumnModel().getColumn(0).setCellRenderer(new CenterTableCellRenderer());
//JScrollPane scrollPane = new JScrollPane(table);
//panel.add(scrollPane);
panel.add(new JScrollPane(table));
panel.add(new JButton("Nouveau"));
//JButton btnNewButton = new JButton("New button");
//panel.add(btnNewButton);
}
public void tableChanged(TableModelEvent e)
{
@SuppressWarnings("unused")
DefaultTableModel model = (DefaultTableModel)e.getSource();
int changedRow = e.getFirstRow();
int changedCol = e.getColumn();
System.out.println("Col : " + changedCol + " Ligne " + changedRow);
}
} |
et ce que l'applet affiche :
Pièce jointe 113568