【发布时间】:2014-12-02 09:52:17
【问题描述】:
在 JDateChooser 中,我们添加了一个 addPropertyChangeListener 来检测是否选择了日期。如果它被选中,我们要打开一个 JCombobox。选择时检测到(日期)字符串,但无法打开JComboBox。
代码如下:
dateChooserCal.getDateEditor().addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt)
{
date = dateChooserCal.getDate();
if ("date".equals(evt.getPropertyName()))
{
dates = evt.getNewValue();
dateString = String.format("%1$td-%1$tm-%1$tY", date);
if (dateString != null)
{
System.out.print(dateString);
chooseTimeBox = new JComboBox(controllerApp.getTime());
chooseTimeBox.setBounds(215, 261, 282, 22);
add(chooseTimeBox);
chooseTimeBox.setVisible(true);
}
}
}
});
【问题讨论】:
-
看起来您使用的是空布局。虽然对于许多新的 Swing 程序员来说,空布局似乎是创建好看的复杂 GUI 的最简单方法,但一旦您熟悉 Swing,您会发现这是一个谬误,空布局将您困在其中,用它创建的 GUI 非常不灵活,难以升级、调试和维护,虽然 GUI 在使用单一屏幕分辨率的单一平台上可能看起来不错,但在所有其他平台上看起来很糟糕,并且明智地使用布局管理器是一个更好的选择。
标签: java swing layout-manager jdatechooser propertychangelistener