Hallo,
ich habe eine Frage, da ich relativ neu in Java bin, weiß ich nicht genau, wie ich es machen kann.
Also, ich habe eine JTable, die von mir erzeugt wurde. Dabei habe ich TableCellRenderer eingesetzt, denn es muss ein Kalender werden. Alles funktioniert:
......................
nur, da ich noch unterschiedliche Felder markiern muss nd diese markierungen sind von unterschiedlichen Buttons abhängig, muss ich meine Tabelle immer neu gestalten, das geht zwar auch, aber ist irgendwie umständlich.
Wie kann ich dieses Teil hier:
immer wieder aufrufen, ohne die Tabelle neu zu erzeugen?
Danke
ich habe eine Frage, da ich relativ neu in Java bin, weiß ich nicht genau, wie ich es machen kann.
Also, ich habe eine JTable, die von mir erzeugt wurde. Dabei habe ich TableCellRenderer eingesetzt, denn es muss ein Kalender werden. Alles funktioniert:
Code:
jTable1 = new javax.swing.JTable(){
//prepareRenderer überschreiben:
@Override public Component prepareRenderer(final TableCellRenderer renderer,
final int row, final int column) {
Component c = super.prepareRenderer(renderer, row, column);
if(c instanceof JLabel){
JLabel label = (JLabel)c;
label.setHorizontalAlignment(JLabel.CENTER);
// Hier beginnt die Farbformatierung der Zeilen für Sa und So
int n;
for(n=0;n<6;n++){
if (this.convertColumnIndexToModel(column)==0 && this.convertRowIndexToModel(row)==n){
label.setBackground(Color.white);
}
if (this.convertColumnIndexToModel(column)==5 && this.convertRowIndexToModel(row)==n){
Color Farbe = new Color (204,204,204);
label.setBackground(Farbe);
}
}
if (this.convertColumnIndexToModel(column)==0 && this.convertRowIndexToModel(row)==6){
label.setBackground(Color.white);
}
}
return c;
}
};
nur, da ich noch unterschiedliche Felder markiern muss nd diese markierungen sind von unterschiedlichen Buttons abhängig, muss ich meine Tabelle immer neu gestalten, das geht zwar auch, aber ist irgendwie umständlich.
Wie kann ich dieses Teil hier:
Code:
//prepareRenderer überschreiben:
@Override public Component prepareRenderer(final TableCellRenderer renderer,
final int row, final int column) {
Component c = super.prepareRenderer(renderer, row, column);
if(c instanceof JLabel){
JLabel label = (JLabel)c;
label.setHorizontalAlignment(JLabel.CENTER);
// Hier beginnt die Farbformatierung der Zeilen für Sa und So
int n;
for(n=0;n<6;n++){
if (this.convertColumnIndexToModel(column)==0 && this.convertRowIndexToModel(row)==n){
label.setBackground(Color.white);
}
if (this.convertColumnIndexToModel(column)==5 && this.convertRowIndexToModel(row)==n){
Color Farbe = new Color (204,204,204);
label.setBackground(Farbe);
}
}
if (this.convertColumnIndexToModel(column)==0 && this.convertRowIndexToModel(row)==6){
label.setBackground(Color.white);
}
}
return c;
}
immer wieder aufrufen, ohne die Tabelle neu zu erzeugen?
Danke