除{strong> HSB 外,如何隐藏JColorChooser
处的所有默认面板?
是否有可能只显示没有JTabbedPane的HSB,只是简单的面板
谢谢!
答案 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;
}