Я загружаю и использую JDatePicker
(http://sourceforge.net/projects/jdatepicker/). Я помещаю его в JTextField
и когда я нажимаю в другом месте всплывающее окно, всплывающее окно не закрывается (как и все другие всплывающие окна). Я пытаюсь выяснить, как я могу закрыть всплывающее окно, но я ничего не нашел? Может кто-нибудь мне помочь?
Edit Dec. 2014: Эта проблема была исправлена разработчиками JDatePicker
. См. Ответ juanheyns ниже.
JDatePicker
исходный код 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());
}
Посмотрите также, как вы скрываете всплывающее окно Swing, когда вы нажимаете на другое место для получения более подробной информации.
Это было зарегистрировано как проблема на странице проекта github: https://github.com/JDatePicker/JDatePicker/issues/29
Он был исправлен и будет частью следующего выпуска (1.4.0): https://github.com/JDatePicker/JDatePicker/commit/4fa441a8e06691e4a00573379ea4d218710d7d1a