JColorChooser: скрыть все панели по умолчанию и показать только панель HSB - PullRequest
4 голосов
/ 31 января 2012

Как скрыть все панели по умолчанию на JColorChooser, кроме HSB ?

А можно ли показать только HSB без JTabbedPane, просто панель

enter image description here

Спасибо!

Ответы [ 4 ]

7 голосов
/ 31 января 2012
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);
                    }
                }
            }
        });
    }
}
4 голосов
/ 31 января 2012

Вы можете попробовать: setChooserPanels метод JColorChooser, чтобы сделать это.Дополнительная помощь здесь .

1 голос
/ 12 февраля 2016

Это также можно сделать с помощью простого цикла:

AbstractColorChooserPanel[] panels = jColorChooser1.getChooserPanels();
for (AbstractColorChooserPanel accp : panels) {
   if(!accp.getDisplayName().equals("HSB")) {
      jColorChooser1.removeChooserPanel(accp);
   } 
}
0 голосов
/ 05 июля 2014

Если вы хотите удалить панели, используйте следующий подход. Здесь я удаляю все остальные панели, кроме образцов и 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;
            }
...