private class MyCustomPopupWindow extends JFrame { private ScheduleMerge scheduleTaskMerge; private FlatDatePicker datePicker; public MyCustomPopupWindow(Point coordinates, ScheduleMerge scheduleTaskMerge) { super(); fakePopupWindow = this; this.scheduleTaskMerge = scheduleTaskMerge; this.setUndecorated(true); this.setAutoRequestFocus(true); this.setSize(new Dimension(370, 30)); this.setLocation(new Point(coordinates.x, coordinates.y)); this.setDefaultCloseOperation(HIDE_ON_CLOSE); this.setType(Type.UTILITY); initialise(); } private void initialise() { datePicker = new FlatDatePicker(FlatDatePicker.TYPE_PICKER_DAY, SwingConstants.LEFT, true, false); datePicker.setLocale(Shared.configuration.getLocale()); datePicker.setTimestamp(scheduleTaskMerge.getModelTask().scheduledTask.specificTimestamp); this.getRootPane().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, new Color(0, 0, 0))); this.setLayout(new BorderLayout()); this.add(datePicker); this.repaint(); } public void close() { scheduleTaskMerge.getModelTask().scheduledTask.specificTimestamp = datePicker.getTimestamp(); tableSpecificSchedules.repaint(); scheduleTaskManager.setButtonSaveState(); this.dispose(); } public void showPopup() { this.setVisible(true); this.requestFocus(); } }