[Swing] Composant JTextField dans une JTable
Salut, je veux faire un tableau de 5 collones et 5 rangées, je veux y mettre des jTextField:
Code:
1 2
| private Object datasJT1[][]=new Object[5][1000];
private Object titresJT1[]={"REF", "Description", "Prix unitaire", "Quantité", "Total"}; |
Code:
1 2 3 4 5 6 7
| for(int i=0;i<5;i++) {
datasJT1[0][i]=new JTextField();
datasJT1[1][i]=new JTextField();
datasJT1[2][i]=new JTextField();
datasJT1[3][i]=new JTextField();
datasJT1[4][i]=new JTextField();
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| jTable1.setModel(new ZModel(datasJT1, titresJT1));
jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
jScrollPane1.setViewportView(jTable1);
TableColumn colonne=jTable1.getColumnModel().getColumn(0);
colonne.setPreferredWidth(50);
colonne=jTable1.getColumnModel().getColumn(1);
colonne.setPreferredWidth(200);
colonne=jTable1.getColumnModel().getColumn(2);
colonne.setPreferredWidth(50);
colonne=jTable1.getColumnModel().getColumn(3);
colonne.setPreferredWidth(50);
colonne=jTable1.getColumnModel().getColumn(4);
colonne.setPreferredWidth(50); |
Code:
jTable1.setDefaultRenderer(JComponent.class, new TableComponent());
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
| class ZModel extends AbstractTableModel {
private Object data[][];
private Object title[];
private ZModel(Object[][] datasJT1, Object[] titresJT1) {
this.data=datasJT1;
this.title=titresJT1;
}
public int getRowCount() {
return this.data.length;
}
public int getColumnCount() {
return this.title.length;
}
public Object getValueAt(int row, int col) {
return this.data[row][col];
}
@Override
public String getColumnName(int col) {
return this.title[col].toString();
}
}
public class TableComponent extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
//Si la valeur de la cellule est un JButton, on transtype notre valeur
if (value instanceof JTextField){
return (JTextField) value;
}
else
return this;
}
} |
Le résultat c'est que j'ai la description des objets (javax.swing.jtextfield ...)
plutôt que les text fields.
J'ai du me planter quelque part mais je ne vois pas ou
Merci