Auf Thema antworten

Ich hab sowas ähnliches mal gemacht, es ist allerdings wirklich keine saubere Lösung:

Da dir bei der getTableCellRendererComponent Methode die Row übergeben wird, kannst du abfragen, ob das jetzt die Row ist, in der du die Buttons hast und dann eben einen Button statt deinen normalen RendererComponents zurückgeben.

[code=Java]class BeschriftungsRenderer extends JLabel implements TableCellRenderer

    {

        Border raised,lowered;

        BeschriftungsRenderer()

        {

            this.setOpaque(true);

            this.setBackground(Color.LIGHT_GRAY);

            raised=BorderFactory.createBevelBorder(BevelBorder.RAISED);

            lowered=BorderFactory.createBevelBorder(BevelBorder.LOWERED);

        }


        @Override

        public Component getTableCellRendererComponent(JTable table, Object value,

                boolean isSelected, boolean hasFocus,

                int row, int column) {

            if(column==model.getColumnCount()-1)

            {

                this.setText("#"+row);

            }

            else

            {

                this.setText(columnNames.get((Integer)value));

            }

            if(hasFocus)

            {

                this.setBorder(lowered);

            }

            else

            {

                this.setBorder(raised);

            }

           

            return this;

        }

       

    }[/code]

Der Code hier ist nur als Beispiel gedacht, der macht keine Buttons sonder imitiert sozusagen das Aussehen der Header Zeile/Spalte nur statt oben und links sind sie unten und rechts (a la Excel nur umgekehrt).



Oben