2011-12-06 6 views
3

私はJXDatePickerをパーソナライズしたいと思います。具体的には、独自の位置に独自のアクションボタンを作成したいと考えています。私は含まれているJButtonを抽出しようとしましたが、JPanelに追加しようとすると空のスペースしか追加されません。SwingX - パーソナライズJXDatePicker

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

私はこのアプローチがとにかく動作するとは思わないが、私は現時点ではそれほどよく分からない。 提案がありますか?

+0

Hmm ... 'JXDatePicker'を拡張できますか?あるいは、あなたは 'getContentPane()'やそれに類するメソッドを呼び出して、それを捨てることができますか?本当に、答えはあなたができないことかもしれません。 –

+0

なぜですか?私は知っている:-)それはあなた自身のDatePickerUIを書く必要があります変更するには - 基本*実装のアイデアを見て – kleopatra

+1

@kleopatraはい見ていない私の他のコンポーネントにマッチします:)基本的な実装はどこで見つけることができますか?私はJXDatePickerのソースコードを理解しようとしましたが、http://www.java2s.com/Open-Source/Java-Document/Swing-Library/swingx/org/jdesktop/swingx/JXDatePickerボタンについて何も見つかりませんでした。 java.htm – Anthea

答えて

2

は、実用的なソリューションを発見した、クリーンな方法ではないことmigt:

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を追加しました。

0
((JButton) startDatePicker.getComponent(1)).setIcon(new ImageIcon(((new ImageIcon(getClass().getResource("/images/calendar.png"))).getImage()).getScaledInstance(20, 20, java.awt.Image.SCALE_SMOOTH))); 
関連する問題