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



我想禁用JDateChooser上的所有星期日,但我不知道怎么做。

我之前在搜索时看到了一些答案,他们使用的是带有开始和结束的范围,但就我而言,它是 jdate选择器中的所有星期日。这是为了我们的学校项目,我们不允许拖放控件,所以我声明了日期选择器并导入了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,允许禁用所有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;
}
}
}

相关内容

  • 没有找到相关文章

最新更新