为了账号安全,请及时绑定邮箱和手机立即绑定

我如何隐藏或禁用 JDateChooser 上的所有星期日?

我如何隐藏或禁用 JDateChooser 上的所有星期日?

撒科打诨 2023-06-08 20:45:59
我想禁用所有星期日,JDateChooser但我不知道如何。我在搜索时早些时候看到了一些答案,他们使用的是带有开始和结束的范围,但在我的例子中,它是 jdatechooser 中的所有星期天。这是为了我们的学校项目,我们不允许拖放控件,所以我声明了日期选择器并导入了com.toedter.calendar.JDateChooser;下面是我的 JDateChooser 代码。希望多多学习,谢谢。    JDateChooser date = new JDateChooser(new Date());                         date.setBounds(120,150,150,30);                         sapp1.add(date);
查看完整描述

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;

        }

    }


}



查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信