核心Swing組件(五) – JAVA編程語言程序開發技術文章

4.5 AbstractionButton類


如圖4-1所示,AbstractButton類是作用在幕後作為所用 的Swing按鈕組件的一個重要Swing類。在本章稍後的JButton類中所描述的JButton是最簡單的子類。其餘的子類將會在後續的章節中進行描述。


所有的AbstractButton子類使用ButtonModel接口來存儲數據模型。DefaultButtonModel類是所使用的默認實現。另外,我們可以將任意的AbstractButton對象組合為一個ButtonGroup。盡管這種組合對於JRadioButton與JRadioButtonMenuItem組件最為自然,然而任意的AbstractButton子類都會起作用。


4.5.1 AbstractButton屬性


表4-11列出瞭AbstractButton子類所共享的32個屬性。這些屬性可以使得我們自定義所有按鈕的外觀。











































































































































屬性名 數據類型 訪問性
action Action 讀寫綁定
actionCommand String 讀寫
actionListeners ActionListener[] 隻讀
borderPainted boolean 讀寫綁定
changeListeners ChangeListener[] 隻讀
contentAreaFilled boolean 讀寫綁定
disabledIcon Icon 讀寫綁定
disabledSelectedIcon Icon 讀寫綁定
disabledMnemonicIndex int 讀寫綁定
enabled boolean 隻寫
focusPainted boolean 讀寫綁定
horizontalAlignment int 讀寫綁定
horizontalTextPosition int 讀寫綁定
icon Icon 讀寫綁定
iconTextGap int 讀寫綁定
itemListeners ItemListener[] 隻讀
layout LayoutManager 隻寫
margin Insets 讀寫綁定
mnemonic char 讀寫綁定
mnemonic int 隻寫
model ButtonModel 讀寫綁定
multiClickThreshhold long 讀寫
pressedIcon Icon 讀寫綁定
rolloverEnabled boolean 讀寫綁定
rolloverIcon Icon 讀寫綁定
rolloverSelectedIcon Icon 讀寫綁定
selected boolean 讀寫
selectedIcon Icon 讀寫綁定
selectedObjects Object[] 隻讀
text String 讀寫綁定
UI ButtonUI 讀寫
verticalAlignment int 讀寫綁定
verticalTextPosition int 讀寫綁定

在這裡值得一提的就是multiClickThreshhold。這個屬性表示以毫秒計數的時間。如果一個按鈕在這段時間間隔被鼠標多次選中,並不會產生額外的動作事件。默認情況下這個屬性值為0,意味著每一次點擊都會產生一個事件。為瞭避免在重要的對話框中偶然重復提交動作的發生,應將這個屬性值設置0以上的合理值。


ButtonModel/Class DefaultButtonModel接口


ButtonModel接口被用來描述AbstractButton組件的當前狀態。另外,他描述瞭為所有不同的AbstractButton子類所支持的事件監聽器對象的集合。其定義如下:


public interface ButtonModel extends ItemSelectable {
// Properties
public String getActionCommand();
public void setActionCommand(String newValue);
public boolean isArmed();
public void setArmed(boolean newValue);
public boolean isEnabled();
public void setEnabled(boolean newValue);
public void setGroup(ButtonGroup newValue);
public int getMnemonic();
public void setMnemonic(int newValue);
public boolean isPressed();
public void setPressed(boolean newValue);
public boolean isRollover();
public void setRollover(boolean newValue);
public boolean isSelected();
public void setSelected(boolean newValue);
// Listeners
public void addActionListener(ActionListener listener);
<SPAN style="COLO

發佈留言