Java .setText()方法在文本字段中
我目前正在开发一个Eclipse来构建一个JavaSwing应用程序。我在将数据库数据显示到文本字段时遇到问题。观察文本字段与日期选择器一起使用,供用户选择所需的日期,然后将其作为字符串保存到数据库中,例如2014/07/03。将此日期记录添加到数据库后,我希望能够在用户更新日期更改之前显示它。我尝试使用.setText()方法,但数据未显示Java .setText()方法在文本字段中,java,swing,jtextfield,Java,Swing,Jtextfield,我目前正在开发一个Eclipse来构建一个JavaSwing应用程序。我在将数据库数据显示到文本字段时遇到问题。观察文本字段与日期选择器一起使用,供用户选择所需的日期,然后将其作为字符串保存到数据库中,例如2014/07/03。将此日期记录添加到数据库后,我希望能够在用户更新日期更改之前显示它。我尝试使用.setText()方法,但数据未显示 final ObservingTextField txtDutyDate = new ObservingTextField(); txtDutyD
final ObservingTextField txtDutyDate = new ObservingTextField();
txtDutyDate.setColumns(10);
txtDutyDate.setBounds(283, 427, 108, 22);
add(txtDutyDate);
txtDutyDate.setText(d.getDutyDate());
p.S ObservingTextField是一个自我声明的类,因此我可以在从日历中选择日期后将其放入文本框中
public class ObservingTextField extends JTextField implements Observer {
/**
*
*/
private static final long serialVersionUID = 1L;
public void update(Observable o, Object arg) {
Calendar calendar = (Calendar) arg;
DatePicker dp = (DatePicker) o;
// System.out.println("picked=" + dp.formatDate(calendar));
setText(dp.formatDate(calendar));
}
}
根据,您需要向
Observable
对象注册观察者,然后调用Observable
对象的notifyobservators
方法。由于您没有在问题中包含代码,我假设您没有这样做。什么是ObservingTextField
?找不到任何javadoc。就我所能看到的而言,它像一张桌子或一张桌子,否则,.setColums()
做什么?在任何情况下,使用setColums()
方法的对象上的setText()
听起来都很奇怪……我的错,不知道JTextField
有一个。但是在javadoc中,它说它使布局无效,所以你必须这样做。@Narmer您好,我试图重新验证它,但当我使用.setText()方法时,文本框仍然是空的:(我忘了包括上面的ObservingTextField代码,我的错!好吧,那只是沧海一粟。正如@DavidPostill所说的,更新你的答案。一个完整的例子被看到了。是的,我没有!但是我该如何调用NotifyObservators方法呢?例如,setChanged()
和notifyObservators()
都是必需的。