JDateChooser anpassen

Status
Nicht offen für weitere Antworten.

hello123

Mitglied
Hallo,
und zwar habe ich ein kleines Problem damit,
einen JDateChooser anzupassen.

Standardmäßig beginnt die Woche mit einem Sonntag,
ich möchte sie aber mit einem Montag beginnen lassen.

Dafür muss der Algorithmus angepasst werden, mit dem
das Layout mit der tageszahl gefüllt wird.

Alte Ansicht:
1_15.jpg


Neue Ansicht:
2_16.jpg


Code zur alten Ansicht:

Java:
.
.
.
                calendar.set( Calendar.DATE, 1 );
	    		calendar.set( Calendar.MONTH, month.getSelectedIndex() );
	    		calendar.set( Calendar.YEAR, year.getSelectedIndex()+FIRST_YEAR );
	    		
	    		
	    		firstoff = calendar.get(Calendar.DAY_OF_WEEK)-1;
	    		System.out.println(firstoff);
	    		
	    		lastDay = calendar.getActualMaximum(Calendar.DATE);
	    		for ( int i=0; i<lastDay; i++ ){
	    			days[(i+firstoff)/7+1][(i+firstoff)%7].setText( String.valueOf(i+1) );
	    		}
.
.
.


Code zur neuen Ansicht:
GESUCHT


Gesamter Quelltext:
Source Code, Sample Code or Example Code: DateChooser.java

Wie muss der Code angepasst werden, so dass auch das jeweilige Datum übereinstimmt?
Java:
firstoff = calendar.get(Calendar.DAY_OF_WEEK)-2;
erzeugt bspw. im Februar/März/November 2009 eine IndexOutOfBoundsException,
ansonsten passen die anderen Monate.
Bitte um Hilfe...

Mit freundlichen Grüßen
 
Ich rate mal grade ins Blaue:
Reicht es nciht, beim Calendar einfach setFirstDayOfWeek(Calendar.MONDAY) zu machen?
 
Ich würde sagen du musst nur deine Locale richtig setzen, denn bei mir wird der JDateChooser richtig angezeigt.
 
@Verjigorm:
Also folgendes hat keine Auswirkung auf die Ausgabe:
calendar.setFirstDayOfWeek(Calendar.SATURDAY);
oder
calendar.setFirstDayOfWeek(Calendar.WEDNESDAY);


@HoaX
Locale.getDefault() sagt mir de_DE,
sollte ja korrekt sein...

Hast du Dir den DateChooser mal anzeigen lassen und das Array für die Wochennamen angepasst? Irgendwie müssen ja die einzelnen Werte für den Tag mit verschoben werden...
 
So, nu hab ich´s...
Ein ändern der Zeile:
Java:
calendar.set( Calendar.DATE, 1 );
in
Java:
calendar.set( Calendar.DATE, 7 );
funktioniert nach erstem Testen...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben