我下载并使用JDatePicker
(http://sourceforge.net/projects/jdatepicker/)。我把它放在JTextField
中,当我点击弹出窗口中的任何其他地方时弹出窗口没有关闭(就像所有其他弹出窗口一样)。我试着找出,我怎么能关闭弹出窗口但是我没找到什么?
任何人都可以帮助我吗?
答案 0 :(得分:3)
这已在项目github页面上记录为问题: https://github.com/JDatePicker/JDatePicker/issues/29
它已被修复,将成为下一个版本(1.4.0)的一部分: https://github.com/JDatePicker/JDatePicker/commit/4fa441a8e06691e4a00573379ea4d218710d7d1a
答案 1 :(得分:1)
编辑2014年12月:
JDatePicker
的开发人员已修复此问题。请参阅下面的juanheyns的答案。
在查看JDatePicker
的源代码后,我认为如果不更改JDatePicker
的源代码,就无法做到这一点。
实现该行为需要对类net.sourceforge.jdatepicker.impl.JDatePickerImpl
的源代码进行一些小的更改(第209行):
/**
* Called internally to popup the dates.
*/
private void showPopup() {
// This is the replaced code:
// if (popup == null){
// PopupFactory fac = new PopupFactory();
// Point xy = getLocationOnScreen();
// datePanel.setVisible(true);
// popup = fac.getPopup(this, datePanel, (int) xy.getX(), (int) (xy.getY()+this.getHeight()));
// popup.show();
// }
// This is new code
JPopupMenu pop = new JPopupMenu();
pop.add(datePanel);
pop.show(this, this.getX(), this.getY() + this.getHeight());
}
另请查看How do you hide a Swing Popup when you click somewhere else了解更多详情。