SwingX - персонализируйте JXDatePicker - PullRequest
3 голосов
/ 07 декабря 2011

Я хочу персонализировать JXDatePicker.В частности, я хочу создать собственную кнопку действия на своей позиции.Я попытался извлечь включенный JButton, но когда я пытаюсь добавить его в любой JPanel, он только добавляет пустое пространство.

JXDatePicker fDate = new JXDatePicker(new Date());
fDate.getEditor().setBorder(null);
fDate.getEditor().setEditable(false);
JButton eDate = (JButton) fDate.getComponent(1);
fDate.remove(eDate);

Я не думаю, что этот подход все равно будет работать, но сейчас я не знаю ничего лучшего.Есть предложения?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

нашел рабочее решение, не будь самым чистым способом:

JXDatePicker fDate = new JXDatePicker(new Date());

//edit the Textfield
fDate.getEditor().setBorder(null);
fDate.getEditor().setEditable(false);

//edit the Button
JButton dateBtn= (JButton) fDate.getComponent(1);
Image editImage  =Toolkit.getDefaultToolkit().getImage(getClass().getResource("/toolbarButtonGraphics/general/Edit16.gif"));

dateBtn.remove(eDate);  
dateBtn.setIcon(new ImageIcon(editImage));
dateBtn.setFocusPainted(false);
dateBtn.setMargin(new Insets(0, 0, 0, 0));
dateBtn.setContentAreaFilled(false);
dateBtn.setBorderPainted(false);
dateBtn.setOpaque(false);

Я добавил dateBtn где-то еще в моем представлении.

1 голос
/ 22 января 2014
((JButton) startDatePicker.getComponent(1)).setIcon(new ImageIcon(((new ImageIcon(getClass().getResource("/images/calendar.png"))).getImage()).getScaledInstance(20, 20, java.awt.Image.SCALE_SMOOTH)));
...