gpt4 book ai didi

java - 如何将 jXDatePicker 与 maskFormatter 一起使用?

转载 作者:太空狗 更新时间:2023-10-29 22:41:42 24 4
gpt4 key购买 nike

我想将 jxdatepicker 与 maskFormatter 一起使用。我试过了

MaskFormatter maskFormatter = new MaskFormatter ("##/##/####");
JFormattedTextField field=new JFormattedTextField (maskFormatter);
jXDatePicker.setEditor (field);

MaskFormatter maskFormatter = new MaskFormatter ("##/##/####");
maskFormatter.install (jXDatePicker.getEditor ());

第一个和第二个解决方案都行不通

附言:JFormattedTextField 可以与 MaskFormatter 一起正常工作AND jXDatePicker 与简单的 JFormattedTextField

一起工作

最佳答案

这是一个老问题,但似乎仍然很活跃,所以这是我们前段时间实现该功能的方式(swingx-all-1.6.5-1.jar):

1) 为 MaskFormatter 创建一个包装类

public class Wrapper extends MaskFormatter {

private final static String DD_MM_YYY = "dd/MM/yyyy";

public Wrapper(String string) throws ParseException {
super(string);

}

@Override
public Object stringToValue(String value) throws ParseException {

SimpleDateFormat format = new SimpleDateFormat(DD_MM_YYY);
Date parsed = format.parse(value);
return parsed;

}

public String valueToString(Object value) throws ParseException {
if (value != null) {
SimpleDateFormat format = new SimpleDateFormat(DD_MM_YYY);
String formated = format.format((Date) value);
return super.valueToString(formated);
} else {
return super.valueToString(value);
}

}

}


2) 将包装好的Formatter添加到 JFormattedTextField 并设置在 JXDatePicker

MaskFormatter maskFormatter;
JXDatePicker datePicker = new JXDatePicker();
try {
maskFormatter = new Wrapper("##/##/####");
JFormattedTextField field = new JFormattedTextField(maskFormatter);
datePicker.setEditor(field);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
somePanel.add(datePicker);

包装类基本上进行格式化,因为尝试在 JXDatePicker 上设置 DateFormat 导致各种 ParseException

关于java - 如何将 jXDatePicker 与 maskFormatter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859797/

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