SwingX - 个性化JXDatePicker

时间:2011-12-06 20:13:18

标签: java swing swingx

我想个性化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 个答案:

答案 0 :(得分:2)

找到了一个有效的解决方案,可能不是最干净的方式:

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);

我在视图中的其他地方添加了日期。

答案 1 :(得分:1)

((JButton) startDatePicker.getComponent(1)).setIcon(new ImageIcon(((new ImageIcon(getClass().getResource("/images/calendar.png"))).getImage()).getScaledInstance(20, 20, java.awt.Image.SCALE_SMOOTH)));