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
|
/*Ma class editor */
public class ImageTableCellEditor extends DefaultCellEditor {
protected JLabel label;
protected ImageIcon image;
public ImageTableCellEditor(JCheckBox checkBox) {
super(checkBox);
// ici je redefinit la methode paint et je redimensionne mon image
label = new JLabel(){
public void paint(Graphics arg0) {
Graphics2D g2d = (Graphics2D)arg0;
g2d.drawImage(image.getImage(),20,0,35,35,this);
g2d.dispose();
}
};
//ajout du listener
label.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
fireEditingStopped();
}
public void mouseEntered(MouseEvent e) {
label.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) );
}
public void mouseExited(MouseEvent e) {
label.setCursor(Cursor.getDefaultCursor() );
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
image = (ImageIcon)value;
label.setIcon(image);
isPushed = true;
return label;
}
public Object getCellEditorValue() {
if (isPushed) {
if(value.toString() != null && !value.toString().equals("") )
System.out.println("Mon action ici ");
}
isPushed = false;
return (ImageIcon)label.getIcon();
}
public boolean stopCellEditing() {
isPushed = false;
return super.stopCellEditing();
}
protected void fireEditingStopped() {
super.fireEditingStopped();
}
}
/* Ma classe renderer */
public class ImageTableCellRenderer extends JLabel implements TableCellRenderer {
protected ImageIcon image;
public ImageTableCellRenderer() {
super();
}
public void paint(Graphics arg0) {
Graphics2D g2d = (Graphics2D)arg0;
g2d.drawImage(image.getImage(),20,0,35,35,this);
g2d.dispose();
}
public Component getTableCellRendererComponent(JTable table, Object i, boolean isSelected, boolean hasFocus, int row, int column) {
image = (ImageIcon)i;
setIcon( image );
addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) );
}
public void mouseExited(MouseEvent e) {
setCursor(Cursor.getDefaultCursor() );
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});
return this;
}
} |
Partager