Java 修改颜色选择器面板

Java 修改颜色选择器面板,java,swing,jcolorchooser,Java,Swing,Jcolorchooser,我正在创建一个颜色选择器,需要修改其中一个颜色选择器面板 我想要的是,我想通过RGB字段输入输入值来设置颜色,问题是RGB值似乎已禁用api中是否有方法打开RGB输入以获取值?这里似乎很好 import javax.swing.*; class ColorChooserTest { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {

我正在创建一个颜色选择器,需要修改其中一个颜色选择器面板

我想要的是,我想通过RGB字段输入输入值来设置颜色,问题是RGB值似乎已禁用api中是否有方法打开RGB输入以获取值?

这里似乎很好

import javax.swing.*;

class ColorChooserTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JOptionPane.showMessageDialog(null, new JColorChooser());
            }
        });
    }
}


您是否可以组合RGB滑块面板和HSB面板

是的,显然这是可能的。检查这个(非常脆弱,布局不好)示例


哪里是禁用的RGB颜色模型,请发布一个说明您的问题的帖子。我看它不是禁用的。你有没有试过点击RGB标签或者键入Ctrl G?安德鲁,这是Alt+G,我想:-)@Joey你是对的。哎呀,我的错我故意禁用了RGB面板,我想在HSB面板上输入RGB值。那些RGB值只是标签还是禁用的文本字段?谢谢你的回复。你是否可以将RGB滑块面板和hsb面板组合起来?我只是想要一个只有一个面板的颜色选择器。我不知道,但这是一个奇怪的要求。作为用户,我希望看到它们分开。
getChooserPanels()
的+1。我对依赖索引从来都不乐观,而且类是包私有的。我最终决定搜索
panel.getClass().getSimpleName()
。原来的问题似乎得到了回答。如果你同意,请在你有时间的时候回答。
import java.awt.*;
import javax.swing.*;
import javax.swing.colorchooser.*;
import javax.swing.border.*;

class ColorChooserTest2 {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JColorChooser cc = new JColorChooser();
                AbstractColorChooserPanel[] panels = cc.getChooserPanels();

                JPanel p = new JPanel();
                panels[1].setBorder(
                    new TitledBorder(panels[1].getDisplayName()));
                p.add(panels[1]);

                panels[2].setBorder(
                    new TitledBorder(panels[2].getDisplayName()));
                p.add(panels[2]);

                JPanel gui = new JPanel(new BorderLayout(2,2));
                gui.add(p, BorderLayout.CENTER);

                gui.add(cc.getPreviewPanel(), BorderLayout.SOUTH);

                JOptionPane.showMessageDialog(null, gui);
            }
        });
    }
}