我有一个方法将JTextField绑定到JGoodies中的bean
public static JTextField bindDoubleTextField(PresentationModel<?> adapter, String
propertyName, boolean useBuffer)
{
ValueModel valueModel = getValueModel(adapter, propertyName, useBuffer);
DecimalFormat decimalFormat = new DecimalFormat("0.######");
decimalFormat.setGroupingUsed(false);
JTextField textField = BasicComponentFactory.createFormattedTextField(valueModel, decimalFormat);
return textField;
}
在后面的代码中,我向ValueModel添加了一个propertyChangeListener,但是它只在我失去对JTextField的关注时接收事件。有可能在我输入时接收到这些事件吗?我希望能够根据值是否与其原始值不同来设置JTextField的背景颜色。我不希望提交的值是我键入的,我只想检测该值是否与上次提交的值不同。
有可能在我输入时接收这些事件吗?
参见实现文档过滤器或可能的如何编写文档侦听器。
您最好使用BasicComponentFactory.createTextField(ValueModel,boolean)。这允许您为第二个参数传递false,并且提交将在您键入时发生。但是你必须自己做格式化和验证,或者使用JGoodies验证API。
JGoodies将与您可能使用的任何文档或其他格式化程序冲突。