View Single Post
Old 18-02-2004, 12:50   #10
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Ho capito...tu hai scritto:

Codice:
class Miatab implements TableCellRenderer{

       public Component getTableCellRendererComponent(JTable table,
                                               Object value,
                                               boolean isSelected,
                                               boolean hasFocus,
                                               int row,
                                               int column)
       {
        return (new Button("prova"));

       }


     }
Innanzitutto ho omesso di dirti che che la classe deve estendere JLAbel, perchè ogni cella della tabella non è altro che una JLabel... MA LO AVRESTI SCOPERTO SE AVESSI LETTO LA DOCUMENTAZIONE CHE TI HO LINKATO.

Codice:
public class MyTableCellRenderer extends JLabel
                           implements TableCellRenderer {
Tu devi pensare che quel metodo viene eseguito ogni volta che la cella deve essere ridisegnata...immagina quante volte al secondo! Che senso ha poi restituire un new Button????

Ecco una realizzazione significativa di quella classe:

Codice:
public Component getTableCellRendererComponent(
                            JTable table, Object value,
                            boolean isSelected, boolean hasFocus,
                            int row, int column) {
        
        String s = value.toString();
        setText(s);
        setIcon(AllegatiConstants.defaultIcon);					
					
            
        if (isSelected) {
            setBackground(table.getSelectionBackground());
			      setForeground(table.getSelectionForeground());
			      setBorder(BorderFactory.createLoweredBevelBorder());
        } else {
            setBackground(table.getBackground());
			      setForeground(table.getForeground());
            setBorder(BorderFactory.createRaisedBevelBorder());
        }
        
        setEnabled(table.isEnabled());
			  setFont(table.getFont());
        setOpaque(true); //MUST do this for background to show up.
        
        setToolTipText("PROVA!"); 
        return this;
cn73 è offline   Rispondi citando il messaggio o parte di esso