JButton dans JTable

nahnok Messages postés 5 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 26 mai 2004 - 26 mai 2004 à 07:56
nahnok Messages postés 5 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 26 mai 2004 - 26 mai 2004 à 11:34
Bonjour à tous,

mon problème c'est que je veux insérer des JButton dans des cellules
de ma JTable mais je trouve aucun moyen d'y arriver

apparemment on peut insérer que du text des combo box ou des check box

quelqu'un peut-il m'aider, siou plait ??

8 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
26 mai 2004 à 09:06
Il faut que tu fasse un CellEditor personnalise...
voici un exemple simple pour mettre un spinner,
change ave3c un bouton et c'est bon!:

/////////////////////////////////////////////////////////////////////////////
/**
* Title:

* Description:

* Copyright: Copyright (c) 2003

* Company:

* @author D.MAILLET
* @version 1.0
*/
public class SpinnerCellEditor
extends AbstractCellEditor
implements TableCellEditor {

private SpinnerModel spin_az = new SpinnerNumberModel(0, 0, 360, 1);
private JSpinner spinner_az = new JSpinner(spin_az);

////////////////////////////////////////////////////////////////////////////
public Object getCellEditorValue() {
return spinner_az.getValue();
}

////////////////////////////////////////////////////////////////////////////
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
spinner_az.setValue(value);
return spinner_az;
}
}
---------------------------------------------
>:) dams >:)
...en dansant la javanaise ...
---------------------------------------------
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
26 mai 2004 à 09:21
hum, j'ai oublie de te dire de lui mettre cet editor dans la bonne colonne ou cellule:

colonne = table.getColumnModel().getColumn(numdetacolonne);
colonne.setCellEditor(new SpinnerCellEditor());

---------------------------------------------
>:) dams >:)
...en dansant la javanaise ...
---------------------------------------------
0
nahnok Messages postés 5 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 26 mai 2004
26 mai 2004 à 09:36
marche toujour pas

code:

class ButtonCellEditor extends ... implements ...{
private JButton bouton = new JButton();

public Object getCellEditorValue(){
return bouton.getText();
}

public Component getTableCellEditorComponent(...){
bouton.setText(value);
return bouton;
}
}

et après :

maTable.getTableHeader().getColumn(4).setCellEditor(new ButtonCellEditor());

et quand je fais mon addRow je met "..." pour la colonne du bouton,
et comme ca je devrais avoir un bouton avec trois point dans ma
colonne à la ligne que j'e viens d'ajouter

mais ca me le met toujours sous forme de texte ... pas de bouton à l'horizon

j'ai oublié qlq chose ??
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
26 mai 2004 à 10:17
c'est normal qu'il n'y ait que du texte dans ta cellule, c'est seulement qd tu clique dedans, comme si tu editais, que tu auras le boutons visible...
en gros tu as le comportment, mais pas l'aspect...
clique sur une cellule de ta 4eme colonne tu verras
---------------------------------------------
>:) dams >:)
...en dansant la javanaise ...
---------------------------------------------
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nahnok Messages postés 5 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 26 mai 2004
26 mai 2004 à 10:32
ben quand je clique il se passe rien de neuf
il faut que j'ajoute un actionListener dans le constructeur de ma classe ButtonCellEditor
c'est bien ca ??

et comment faire pour voir le bouton ???
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
26 mai 2004 à 11:11
oui, ajoute l'actionlistener...
et comme je te disais tu le verras pas ton bouton, sauf en cliquant dans la case...
---------------------------------------------
>:) dams >:)
...en dansant la javanaise ...
---------------------------------------------
0
nahnok Messages postés 5 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 26 mai 2004
26 mai 2004 à 11:34
ok merci je vais me débrouiller avec ca alors
0
nahnok Messages postés 5 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 26 mai 2004
26 mai 2004 à 09:39
marche toujour pas

code:

class ButtonCellEditor extends ... implements ...{
private JButton bouton = new JButton();

public Object getCellEditorValue(){
return bouton.getText();
}

public Component getTableCellEditorComponent(...){
bouton.setText(value);
return bouton;
}
}

et après :

maTable.getTableHeader().getColumn(4).setCellEditor(new ButtonCellEditor());

et quand je fais mon addRow je met "..." pour la colonne du bouton,
et comme ca je devrais avoir un bouton avec trois point dans ma
colonne à la ligne que j'e viens d'ajouter

mais ca me le met toujours sous forme de texte ... pas de bouton à l'horizon

j'ai oublié qlq chose ??
-1
Rejoignez-nous