我是新手,我想禁用this example中显示的日期,但需要JDateChooser
按钮。这是我的代码,希望你们能帮助我。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
RangeEvaluator evaluator = new RangeEvaluator();
evaluator.setStartDate(dateFormat.parse("2013-09-14"));
evaluator.setEndDate(dateFormat.parse("2013-09-23"));
JDateChooser calendar = new JDateChooser();
calendar.getCalendar.(evaluator);
// evaluator must be added to a JDayChooser object
calendar.setSize(180, 25);
calendar.setLocation(140, 640);
calendar.setVisible(true);
calendar.updateUI();
this.add(calendar);
答案 0 :(得分:2)
让我们从您的问题开始:如何将IDateEvaluator
添加到JDateChooser
?这是一个非常容易解决的问题,但您必须首先了解API :
JDayChooser
是一个面板,每个月的每一天都有按钮
以表格形式显示。JCalendar
组件嵌入了JDayChooser
并添加了
能够改变年份和月份,更新日期选择器。JDateChooser
会在弹出窗口中显示JCalendar
。所以你基本上需要获得JDayChooser
组件的引用并添加这样的日期评估器:
RangeEvaluator evaluator = new RangeEvaluator();
...
JDateChooser dataChooser = new JDateChooser();
dateChooser.getJCalendar().getDayChooser().addDateEvaluator(evaluator);
请注意this answer中描述的错误行为。您 应在添加日期后明确设置当前日期 评估人员来解决这个问题。
您不应该明确地调用任何updateUI()
方法。它是
旨在将组件的UI属性重置为来自的值
目前的外观。
请注意setSize(...)
,setLocation(...)
或等方法
不鼓励setBounds(...)
因为Swing不是为了使用而设计的
确切的组件大小/位置,但改为Layout Managers。
另请参阅this topic。