gpt4 book ai didi

java - JSpinner 时间约束

转载 作者:行者123 更新时间:2023-11-29 05:08:39 25 4
gpt4 key购买 nike

我正在尝试创建一个有小时和分钟的微调器。分钟部分只需要增加 10 分钟,时间范围必须从当前时间到结束时间。我还需要最小值(以前的当前时间)更新到当前时间。

我试着玩弄它,但就是无法让它工作。

JSpinner spinner1 = new javax.swing.JSpinner();
SpinnerDateModel spinnermodel = new SpinnerDateModel();
spinnermodel.setCalendarField(Calendar.MINUTE);
spinner1.setModel(spinnermodel);
spinner1.setEditor(new JSpinner.DateEditor(spinner1, "hh:mm"));

SpinnerModel model = new SpinnerDateModel(currentDate, currentDate, latestDate, Calendar.MINUTE * 10 ?);

最佳答案

SpinnerDateModel 仅使用 1 来递增您要更改的字段。

我扩展了 SpinnerDateModel 以向模型添加附加属性来控制增量值而不是硬编码为 1:

import java.util.*;
import javax.swing.*;

public class MySpinnerDateModel extends SpinnerDateModel
{
private int increment = 1;

public MySpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
{
super(value, start, end, calendarField);
}

public MySpinnerDateModel()
{
this(new Date(), null, null, Calendar.DAY_OF_MONTH);
}

public void setIncrement(int increment)
{
this.increment = increment;
}

public int getIncrement()
{
return increment;
}

@Override
public Object getNextValue()
{
Calendar cal = Calendar.getInstance();
Date value = (Date)getValue();
cal.setTime(value);
cal.add(getCalendarField(), increment);
Date next = cal.getTime();
Comparable end = getEnd();

return ((end == null) || (end.compareTo(next) >= 0)) ? next : null;
}

@Override
public Object getPreviousValue()
{
Calendar cal = Calendar.getInstance();
Date value = (Date)getValue();
cal.setTime(value);
cal.add(getCalendarField(), -increment);
Date prev = cal.getTime();
Comparable start = getStart();

return ((start == null) || (start.compareTo(prev) <= 0)) ? prev : null;
}
}

您应该能够像以前一样使用该模型,但需要附加一条语句:

MySpinnerDateModel model = new MySpinnerDateModel(currentDate, currentDate, latestDate, Calendar.MINUTE); 
model.setIncrement( 10 );

关于java - JSpinner 时间约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29519329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com