Hallo,
ich versuche mich mal wieder an einem kleinen Kalender, die Oberfläche und die Funktionalitäten habe ich nun mittlerweile zusammen. Allerdings würde ich nun gerne noch die Schrift für die Sonntage in Rot darstellen, aber genau daran hakt es bei mir momentan. Ich rufe aus der Klasse in welcher ich die Oberfläche darstelle folgende Klasse auf:
Ich wäre über einen Tipp geben, warum das Programm die Schriftfarbe weiterhin auf Schwarz läßt. Ich bin leider ziemlich ratlos warum das nicht funktioniert und wäre daher über einen entsprechenden Tipp sehr sehr dankbar.
Gruß
Dan
ich versuche mich mal wieder an einem kleinen Kalender, die Oberfläche und die Funktionalitäten habe ich nun mittlerweile zusammen. Allerdings würde ich nun gerne noch die Schrift für die Sonntage in Rot darstellen, aber genau daran hakt es bei mir momentan. Ich rufe aus der Klasse in welcher ich die Oberfläche darstelle folgende Klasse auf:
Code:
import java.awt.Color;
import javax.swing.*;
import javax.swing.table.*;
public class Tabelle
extends DefaultTableCellRenderer
{
public int AnzahlZeilen=0;
Datum dat1=new Datum(); // Erzeugen eines Objekts für die Datumberechnung
Color color; // Datentyp für die Farbe erzeugen
public void fuellen(int iMonth, int iYear, Oberflaeche o2)
{
int ifirstDay=99; // Wochentag des ersten Tages im Monat
int ileerzellen=99; // Anzahl der leerzellen am Monatsanfang
int iSchaltjahr=0; // Schaltjahr (1=ja, 0=nein)
int iTage=1; // Tage des Monats
int iRestWoche=0;
int iDayofMonth=0; // Anzahl der Tage im Monat
int i=0; // Zählvariable
String sTag;
int iTagederMonate[]={31,28,31,30,31,30,31,31,30,31,30,31};
JTable TabdaysofMonth1=o2.getTable();
// Definition des Modells für die Tabelle
DefaultTableModel aModel (DefaultTableModel)TabdaysofMonth1.getModel();
Object[] Woche=new Object[7]; // Objekt für die Woche;
// Löschen der vorhandenen Tabellenzeilen
for(i=0; i<AnzahlZeilen; i++)
{
aModel.removeRow(0);
}
// Hier werden die Spaltenköpfe hinzugefügt
AnzahlZeilen=0; // Zurücksetzen der Zeilen-/Wochenanzahl
// Bestimmung des Wochentages für den 1. im Monat (0=So, 1=Mo, 2=Di, 3=Mi,
// 4=Do, 5=Fr, 6=Sa)
ifirstDay=dat1.ErsterTag(iMonth, iYear);
// Berechnung der leerzellen vor dem Monatsanfang
if(ifirstDay==0)
{
ileerzellen=6;
}
else
{
ileerzellen=ifirstDay-1;
}
// Überprüfung ob der aktuelle Monat Februar ist
if(iMonth==2)
{
// Bestimmung des Schaltjahres
iSchaltjahr=dat1.schaltjahr(iYear);
iDayofMonth=iTagederMonate[iMonth-1]+iSchaltjahr;
}
else
{
iDayofMonth=iTagederMonate[iMonth-1];
}
while(iTage<=iDayofMonth)
{
if(ileerzellen!=0)
{
// Auffüllen der Leerzellen für die erste Monatswoche
for(i=0; i<ileerzellen; i++)
{
Woche[i]=" ";
}
// Auffüllen der angefangenen Woche
iRestWoche=7-ileerzellen;
while(i<7)
{
Woche[i]=String.valueOf(iTage);
iTage++;
i++;
}
ileerzellen=0;
}
else
{
// Füllen der Woche mit den entsprechenden Tagen
for(i=0; i<7; i++)
{
sTag=String.valueOf(iTage);
if(i==6)
{
this.setValue(sTag);
}
Woche[i]=sTag;
iTage=iTage+1;
// Auffüllen der Felder mit leerzeichen am Monatsende
if(iTage-1>iDayofMonth)
{
Woche[i]=" ";
}
}
}
aModel.addRow(Woche);
AnzahlZeilen=AnzahlZeilen+1;
}
TabdaysofMonth1.setModel(aModel);
}
// Schrift für den Sonntag auf rot setzen
public void setValue(Object value)
{
String Sonntag=value.toString();
setForeground(Color.red);
setText(Sonntag);
}
}
Gruß
Dan