【发布时间】:2012-02-23 04:30:24
【问题描述】:
除了HSB,我如何隐藏JColorChooser 的所有默认面板?
是否可以只显示没有 JTabbedPane 的 HSB,只显示普通面板
谢谢!
【问题讨论】:
标签: java swing jcolorchooser
除了HSB,我如何隐藏JColorChooser 的所有默认面板?
是否可以只显示没有 JTabbedPane 的 HSB,只显示普通面板
谢谢!
【问题讨论】:
标签: java swing jcolorchooser
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);
}
}
}
});
}
}
【讨论】:
您可以尝试:setChooserPanels JColorChooser 的方法来做到这一点。更多帮助here.
【讨论】:
也可以用简单的循环来完成:
AbstractColorChooserPanel[] panels = jColorChooser1.getChooserPanels();
for (AbstractColorChooserPanel accp : panels) {
if(!accp.getDisplayName().equals("HSB")) {
jColorChooser1.removeChooserPanel(accp);
}
}
【讨论】:
如果你想删除面板,你可以按照这个方法这里我删除除了色板和 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;
}
【讨论】: