使用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個抽象方法。