1 回答

TA貢獻1829條經驗 獲得超4個贊
您可以JCalendar從中獲取JDateChooser并自定義它以獲得所需的結果。
JDateChooser date = new JDateChooser(new Date());
date.getJCalendar().getDayChooser().addDateEvaluator(new MyDateEvaluator());
您可以設置一個IDateEvaluator允許全部Sundays禁用的自定義。
@Override
public boolean isInvalid(Date date) {
? ? return date.getDay() == 0;
}
這是禁用所有星期日的代碼:
import com.toedter.calendar.IDateEvaluator;
import com.toedter.calendar.JDateChooser;
import javax.swing.*;
import java.awt.*;
import java.util.Date;
public class CustomizedDateChooser {
? ? public static void main(String[] args) {
? ? ? ? JFrame f = new JFrame("ComboBox Example");
? ? ? ? JDateChooser date = new JDateChooser(new Date());
? ? ? ? date.getJCalendar().getDayChooser().addDateEvaluator(new MyDateEvaluator());
? ? ? ? date.setBounds(200,200,200,50);
? ? ? ? JPanel p = new JPanel();
? ? ? ? p.add(new JLabel("Choose a Date:"));
? ? ? ? p.add(date);
? ? ? ? f.add(p);
? ? ? ? f.setLayout(new FlowLayout());
? ? ? ? f.setSize(400, 500);
? ? ? ? f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
? ? ? ? f.pack();
? ? ? ? f.setVisible(true);
? ? }
? ? private static class MyDateEvaluator implements IDateEvaluator {
? ? ? ? @Override
? ? ? ? public boolean isSpecial(Date date) {
? ? ? ? ? ? return false;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public Color getSpecialForegroundColor() {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public Color getSpecialBackroundColor() {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public String getSpecialTooltip() {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public boolean isInvalid(Date date) {
? ? ? ? ? ? return date.getDay() == 0;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public Color getInvalidForegroundColor() {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public Color getInvalidBackroundColor() {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? @Override
? ? ? ? public String getInvalidTooltip() {
? ? ? ? ? ? return null;
? ? ? ? }
? ? }
}
添加回答
舉報