aswing 换肤
aswing設置JButton的樣式
很簡單,你用yourButton.setIcon(new AssetIcon(yourIcon))就可以
如果你不僅僅是要Icon,要整個按鈕外觀都變成這個圖片,你可以把它做成一個Flash的SimpleButton,在FlashIDE里面制作
然后用JButton.wrapSimpleButton(theSimpleButton),搞定
如果你偏偏要用圖片,你還可以通過GroundDecorator來實現,調用setBorder,setBackgroundDecorator,setOpaque先把按鈕的所有默認裝飾去掉,然后setBackgroundDecorator用你實現的GroundDecorator來修飾。
如果要在按鈕狀態改變時,切換圖片,你還可以在GroundDecorator的updateDecorator方法里根據不同的狀態顯示不同的圖片。
如果你使用SkinBuilderLAF,通過UI的方式也可以,你可以這樣;
var ui:ComponentUI = yourBtn.getUI();
ui.putDefault("Button.defaultImage", YourButton_defaultImageClass);
ui.putDefault("Button.pressedImage", YourButton_pressedImageClass);
ui.putDefault("Button.bg", SkinButtonBackground);
…………
最后記得要設置回去,yourBtn.setUI(ui);
=================================================
第三個方法我在aswing 2.0上沒有試用成功,可能我對aswing還不太了解吧,第二個方法我寫了一個GroundDecorator繼承自SkinButtonBackground,覆蓋了setupAssets方法。
override protected function setupAssets(ui:ComponentUI):void
{
stateAsset.setDefaultButtonImage(getAsset(ui, "DefaultButton.defaultImage"));
stateAsset.setDefaultImage(new cup());
stateAsset.setPressedImage(new cdown());
stateAsset.setPressedSelectedImage(getAsset(ui, "pressedSelectedImage"));
stateAsset.setDisabledImage(getAsset(ui, "disabledImage"));
stateAsset.setSelectedImage(getAsset(ui, "selectedImage"));
stateAsset.setDisabledSelectedImage(getAsset(ui, "disabledSelectedImage"));
stateAsset.setRolloverImage(new cover());
stateAsset.setRolloverSelectedImage(getAsset(ui, "rolloverSelectedImage"));
}
轉載于:https://www.cnblogs.com/ndljava/archive/2012/03/16/2400777.html
總結
- 上一篇: REST介绍以及常用的返回状态码
- 下一篇: pyscripter