使用顏色選擇器

    使用JColorChooser可以爲自己的JAVA應用提供一個顏色選擇器。JColorChooser本身就是一個組件,可以添加到任何容器中去。另外,JColorChooser提供一些API使用對話框形式進行顏色選擇。

    顏色選擇器由兩部分組成:ChooserPanel、PreviewPanel。

1、將JColorChooser作爲一般組件添加到某容器中

public class ColorChooserDemo extends JPanel ... {
    public ColorChooserDemo() {  
    super(new BorderLayout());
        banner = new JLabel("Welcome to the Tutorial Zone!",
                            JLabel.CENTER);
        banner.setForeground(Color.yellow);
 . . .
tcc = new JColorChooser(banner.getForeground());
 . . .       
add(tcc, BorderLayout.PAGE_END);
    }

2、ColorSelctionModel
   JColorChooser使用ColorSeclectionModel管理當前顏色的選擇,當前顏色發生變化時,該對象會向註冊的ChangeListener發送一個ChangeEvent事件,可以通過相應該事件,及時反映顏色的變化。
tcc.getSelectionModel().addChangeListener(this);
 . . .
public void stateChanged(ChangeEvent e) {
 Color newColor = tcc.getColor();
    banner.setForeground(newColor);
}

3、打開顏色選擇對話框

Color newColor = JColorChooser.showDialog(
                     ColorChooserDemo2.this,
                     "Choose Background Color",
 banner.getBackground());
以上方法打開一個模式對話框,如想打開一個非模式對話框,可以使用createDialog方法,這個方法允許你爲OK和CANCEL按鈕自定義ActionListener。

4、刪除或替換預覽面板
tcc.setPreviewPanel(new JPanel());

5、創建一個自定義的選擇面板

   可以通過addChooserPanel方法添加一個自定義的選擇面板,如果你想完全替換默認面板,請使用setChooserPanels方法:
//Override the chooser panels with our own.
AbstractColorChooserPanel panels[] = { new CrayonPanel() };
 tcc.setChooserPanels(panels);
其中CrayonPanel是AbstractColorChooserPanel的一個子類,必須重寫其中的5個抽象方法。

 

發佈了13 篇原創文章 · 獲贊 0 · 訪問量 1957
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章