JColorChooser:隐藏所有默认面板并仅显示HSB面板

时间:2012-01-31 12:50:33

标签: java swing jcolorchooser

除{strong> HSB 外,如何隐藏JColorChooser处的所有默认面板?

是否有可能只显示没有JTabbedPane的HSB,只是简单的面板

enter image description here

谢谢!

4 个答案:

答案 0 :(得分:7)

import javax.swing.*;
import javax.swing.colorchooser.*;

class ColorChooserTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JColorChooser cc = new JColorChooser();
                AbstractColorChooserPanel[] panels = cc.getChooserPanels();
                for (AbstractColorChooserPanel accp : panels) {
                    if (accp.getDisplayName().equals("HSB")) {
                        JOptionPane.showMessageDialog(null, accp);
                    }
                }
            }
        });
    }
}

答案 1 :(得分:4)

您可以尝试使用JColorChooser的setChooserPanels方法来执行此操作。更多帮助here

答案 2 :(得分:1)

也可以通过简单循环完成:

AbstractColorChooserPanel[] panels = jColorChooser1.getChooserPanels();
for (AbstractColorChooserPanel accp : panels) {
   if(!accp.getDisplayName().equals("HSB")) {
      jColorChooser1.removeChooserPanel(accp);
   } 
}

答案 3 :(得分:0)

如果你想删除面板,你可以按照这种方法在这里我删除除了色板和RGB之外的所有其他面板,

AbstractColorChooserPanel[] panels=colorChooser.getChooserPanels();
        for(AbstractColorChooserPanel p:panels){
            String displayName=p.getDisplayName();
            switch (displayName) {
                case "HSV":
                    colorChooser.removeChooserPanel(p);
                    break;
                case "HSL":
                    colorChooser.removeChooserPanel(p);
                    break;
                case "CMYK":
                    colorChooser.removeChooserPanel(p);
                    break;
            }