Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何隐藏或禁用JDateChooser上的所有星期日?_Java_Jdatechooser - Fatal编程技术网

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

Java 如何隐藏或禁用JDateChooser上的所有星期日?,java,jdatechooser,Java,Jdatechooser,我想禁用JDateChooser上的所有星期日,但我不知道如何禁用 我之前在搜索时看到了一些答案,它们使用的是带有开始和结束的范围,但在我的例子中,jdatechooser中的所有星期天都是这样。这是为了我们的学校项目,我们不允许拖放控件,所以我声明了日期选择器并导入了com.toedter.calendar.JDateChooser 下面是我的JDateChooser代码。我真的希望能学到更多,谢谢 JDateChooser date = new JDateChooser(new Da

我想禁用
JDateChooser
上的所有星期日,但我不知道如何禁用

我之前在搜索时看到了一些答案,它们使用的是带有开始和结束的范围,但在我的例子中,jdatechooser中的所有星期天都是这样。这是为了我们的学校项目,我们不允许拖放控件,所以我声明了日期选择器并导入了
com.toedter.calendar.JDateChooser

下面是我的JDateChooser代码。我真的希望能学到更多,谢谢

    JDateChooser date = new JDateChooser(new Date());
                        date.setBounds(120,150,150,30);
                        sapp1.add(date);

正如我在原始帖子的评论中提到的,您可以从
JDateChooser
获取
JCalendar
,并对其进行定制以获得所需的结果

JDateChooser date = new JDateChooser(new Date());
date.getJCalendar().getDayChooser().addDateEvaluator(new MyDateEvaluator());
您可以设置一个自定义的
IDateEvaluator
,它允许禁用所有
周日

@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;
        }
    }

}

JDateChooser
获取
JCalendar
,并对其进行自定义。@alli09很高兴知道您的问题已经解决。通过将
日期
与不同的值(
0
而不是
1
)匹配,稍微修改代码,使
周日
被禁用,而不是
周一