G
Guest
Gast
Hallo!
Ich habe mir mit Hilfe einer JTable so eine Art Terminplan erstellt. Dabei sollte es im Menü eine Möglichkeit geben, die Farbe der Selektierten Zelle zu ändern. Wenn man darauf klickt, wird der ActionListener informiert und fragt von der JTable die Koordinaten der Markierten Zelle ab. Jetzt möchte ich meinem CellRenderer (selbst geschrieben) informieren, dass er diese bestimmte Zelle einfärben soll. Wie mache ich das?
Ich habe schon folgendes versucht:
Im CellRenderer eine Methode setColor(Color c) geschrieben, die die Zellfarbe ändern soll. Wenn ich jetzt aber folgendes mache:
erhalte ich in der Zeile 7 (tcr.setColor(Color.red)) eine Fehlermeldung. Woran liegt das?
Gibt es eventuell noch eine bessere Lösung?
(Auch in der Bordsuche habe ich nichts entsprechendes gefunden)
Hier ist mein TableCellRenderer:
Bitte helft mir!
Ich habe mir mit Hilfe einer JTable so eine Art Terminplan erstellt. Dabei sollte es im Menü eine Möglichkeit geben, die Farbe der Selektierten Zelle zu ändern. Wenn man darauf klickt, wird der ActionListener informiert und fragt von der JTable die Koordinaten der Markierten Zelle ab. Jetzt möchte ich meinem CellRenderer (selbst geschrieben) informieren, dass er diese bestimmte Zelle einfärben soll. Wie mache ich das?
Ich habe schon folgendes versucht:
Im CellRenderer eine Methode setColor(Color c) geschrieben, die die Zellfarbe ändern soll. Wenn ich jetzt aber folgendes mache:
Code:
JMenuItem Rot=new JMenuItem("Rot");
Rot.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TableCellRenderer tcr=Plan.getCellRenderer(Plan.getSelectedRow(),Plan.getSelectedColumn());
tcr.setColor(Color.red);
}
});
Gibt es eventuell noch eine bessere Lösung?
(Auch in der Bordsuche habe ich nichts entsprechendes gefunden)
Hier ist mein TableCellRenderer:
Code:
import javax.swing.table.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
public class CellRenderer extends JLabel implements TableCellRenderer
{
public Component getTableCellRendererComponent
(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
{
this.setOpaque(true);
Border b = BorderFactory.createEmptyBorder(1, 1, 1, 1);
this.setBorder(b);
this.setForeground(table.getForeground());
this.setBackground(table.getBackground());
if (hasFocus)
{
this.setBackground(Color.blue);
this.setForeground(Color.red);
}
else if (isSelected)
{
this.setBackground(Color.blue);
}
return this;
}
public void setColor(Color c)
{
this.setForeground(c);
}
}
Bitte helft mir!