Problem mit JCalendar und JDayChooser

kleinfritzchen

Aktives Mitglied
Hallo,
ich hab mir JCalendar (JCalendar Java Bean, a Java Date Chooser) runtergeladen und versuche jetzt verzweifelt ein integriertes Inerface namens IDateEvaluator auf diese Klasse anzuwenden. Irgendwie komme ich nicht klar damit, es geht halt nicht wie gedacht.
Testklasse:
Java:
import javax.swing.JFrame;
import javax.swing.JPanel;

import com.toedter.calendar.JDayChooser;

public class MeinDayTester extends JDayChooser {

	
	
	JFrame f=new JFrame("Test");
	JPanel jp=new JPanel();
	JDayChooser d=new JDayChooser();
	EvTest ev=new EvTest();
	
	public MeinDayTester(){
	
		
		d.addDateEvaluator(ev);
		
		jp.add(d);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.getContentPane().add(jp);	
		f.setLocationRelativeTo(null);
		f.pack();
		f.setVisible(true);
	}
	
	
	
	
	
	public static void main(String[] args) {
	
	
	MeinDayTester tt=new MeinDayTester();
	
	
//	String[] s=null;
//	
//	JDayChooser.main(s);
	
}


}

und hier der das Interface dazu:
Java:
import java.awt.Color;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import com.toedter.calendar.IDateEvaluator;

public class EvTest implements IDateEvaluator{



	@Override
	public boolean isSpecial(Date date) {
		System.out.println("is Spezial");
		return false;
	}

	@Override
	public Color getSpecialForegroundColor() {
		System.out.println("Spezial Fordergrunf");
		return null;
	}

	@Override
	public Color getSpecialBackroundColor() {
		System.out.println("Spezial Hintergrund");
		return null;
	}

	@Override
	public String getSpecialTooltip() {
		System.out.println("Spezial Tooltip");
		return "Spezial";
	}

	@Override
	public boolean isInvalid(Date date) {
		System.out.println("Ist Invalid");
		Calendar j=Calendar.getInstance();
		j.setTime(date);
		if ((j.get(Calendar.DAY_OF_MONTH) %2 )==0){
			return true;
		}
		return false;
	}

	@Override
	public Color getInvalidForegroundColor() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Color getInvalidBackroundColor() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getInvalidTooltip() {
		// TODO Auto-generated method stub
		return "nicht Wälbar";
	}

}
anhand dieses Interface sollten eigentlich nur gerade Tage anwählbar sein aber es funktioniert einfach nicht.
Hat jemand erfahrung mit diesem Packet oder dem JDayChooser und kann mir sagen was ich hier falsch mache?
 
Hallo,

versuch's mal so:

Java:
import com.toedter.calendar.JDayChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MeinDayTester  //extends JDayChooser ist überflüssig!
{

   private JFrame f = new JFrame("Test");
   private JPanel jp = new JPanel();
   private JDayChooser d;
   private EvTest ev = new EvTest();

   public MeinDayTester()
   {
      d = new JDayChooser();
      d.addDateEvaluator(ev);
      d.setForeground(d.getForeground());//erzwingt das Neuzeichnen!
      jp.add(d);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.getContentPane().add(jp);
      f.setLocationRelativeTo(null);
      f.pack();
      f.setVisible(true);
   }

   public static void main(String[] args)
   {
      MeinDayTester tt = new MeinDayTester();
   }
}

Allerdings sind die geraden Tage nicht anwählbar, nur die ungeraden, weil true und false vertauscht sind (in EvTest#isInvalid).

Gruß,
André
 

Zurück
Oben