1
在我的應用程序中,我有一些自定義按鈕,它們具有自定義文本/圖標佈局和一些通常不與按鈕關聯的額外元素。例如有些有兩個文本標籤而不是一個。合成器的JPanel狀態
我實現了我的自定義按鈕,如下所示:
class CustomButton extends JPanel implements MouseListener {
CustomButton() {
setName("CustomButton");
}
}
我使用合成器用於L &樓,我想有儘可能多的樣式信息儘可能(主要是顏色設置)在XML文件中定義)。
在XML文件中我有這樣的:
<style id="customButtonStyle">
<state>
<color idref="A" type="BACKGROUND" />
</state>
<state value="MOUSE_OVER">
<color idref="B" type="BACKGROUND" />
</state>
<state value="PRESSED">
<color idref="C" type="BACKGROUND" />
</state>
</style>
<bind sytle="customButtonStyle" type="name" key="CustomButton" />
當我運行應用程序,顏色「A」被正確使用,但顏色「B」和「C」永遠不會置。
我的問題是,如何通知Synth有關我的自定義按鈕的狀態?
另一方面:我確實考慮過CustomButton
擴展JButton
,但我無法找到一個製作具有自定義子組件的按鈕的好方法。如果這種方法無法解決,我可能會將其作爲單獨的問題發佈。
是啊,其實我有一個'DefaultButtonModel'實例我m在內部使用來設置'MouseListener'方法的狀態。我希望我可以將其綁定到Swing UI類中的一個偵聽器。 – vaughandroid
ButtonModel從Mouse和KeyBoards實現了內部需要的事件,然後沒有必要實現MouseListener兩次, – mKorbel
從我所知道的,ButtonModel只處理鼠標和鍵盤事件,一旦它被添加到使用AbstractButton.setModel( )'''DefaultButtonModel'不實現'MouseListener'。由於我擴展了'JPanel',我不得不啓動通常由'AbstractButton'觸發的狀態更改。 – vaughandroid