JTable recuperer une cellule specifique
Bonjour,
Ca fait une heure que je lis le forum et que j'assaye plein de truc mais j'y arrive pas ...
Donc j'a i un JTable dans laquel je veux mettre des JButton
j'ai donc mon bouton qui etand JButton, implemente CellRenderer et CellEdistor ... c'est bien mais je n'arriva pas a trouver ou dire a ma JTable que c'est le cellRenderer et editor du bouton que je veux ...
Ou cela se fait t'il d'habitude ? sachant que chaque bouton a son CellEditor propre qui depend de parmaetre entré a la création du bouton ??
Je ne peut surement le faire que dans mon model, j'ai donc passer le table au model (c'est pas très jolie mais bon ..) et tout serais parfais si je pouvais indiquer a une cellule particulière sont editor particulier .. mais JTable.getCellAt n'existant pas je seche ...
le code du bouton si ca peut aider :
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
|
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventObject;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
public class RemoveButton extends JButton implements TableCellRenderer , TableCellEditor{
String _type;
String[] _target;
ResultTableModel _model;
RemoveButton(String type, String[] target, ResultTableModel model)
{
super(new ImageIcon("./image/croix1.gif"));
_type = type;
_target = target;
_model = model;
this.setBounds(0, 0, 30, 20);
this.addActionListener(new RemoveListener());
}
class RemoveListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (_type.equals("gene")) _model.removeGene(_target);
else if (_type.equals("regulator")) _model.removeRegulation(_target);
}
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
return this;
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
// TODO Auto-generated method stub
return this;
}
public void addCellEditorListener(CellEditorListener listener) {
// TODO Auto-generated method stub
}
public void cancelCellEditing() {
// TODO Auto-generated method stub
}
public Object getCellEditorValue() {
// TODO Auto-generated method stub
return null;
}
public boolean isCellEditable(EventObject event) {
// TODO Auto-generated method stub
return false;
}
public void removeCellEditorListener(CellEditorListener listener) {
// TODO Auto-generated method stub
}
public boolean shouldSelectCell(EventObject event) {
// TODO Auto-generated method stub
return false;
}
public boolean stopCellEditing() {
// TODO Auto-generated method stub
return false;
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
java.awt.Toolkit toolkit=java.awt.Toolkit.getDefaultToolkit();
java.awt.Dimension tailleEcran=toolkit.getScreenSize();
java.awt.Dimension tailleFrame=frame.getSize();
frame.setLocation((tailleEcran.width-tailleFrame.width)/2,(tailleEcran.height-tailleFrame.height)/2);
frame.setLayout(null);
frame.setVisible(true);
frame.add(new RemoveButton("gene", new String[]{"toto"}, null));
}
} |