修改颜色选择器面板

Posted

技术标签:

【中文标题】修改颜色选择器面板【英文标题】:Modifying a color chooser panel 【发布时间】:2012-02-18 11:08:36 【问题描述】:

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

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

【问题讨论】:

哪里禁用了 RGB 颜色模型,请发sscce.org 说明您的问题 在我看来它并没有被禁用。您是否尝试单击 RGB 选项卡或键入 Ctrl G? 安德鲁,我想是 Alt+G :-) @Joey 你是对的。哎呀,我的坏。 ;) 我故意禁用了 RGB 面板,我想在 HSB 面板上输入 RGB 值。这些 RGB 值只是标签还是禁用的文本字段? 【参考方案1】:

这里看起来不错。

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 面板结合起来?

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

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);
            
        );
    

【讨论】:

感谢您的回复。您是否可以将 rgb 滑块面板和 hsb 面板组合在一起?我只是在一个只有一个面板的颜色选择器之后。 我不知道,但这是一个奇怪的要求。作为用户,我希望看到它们分开。 +1 表示getChooserPanels()。我从来没有对依赖索引感到乐观,而且这些类是包私有的。我终于决定搜索panel.getClass().getSimpleName() 看来原来的问题已经回答了。如果您同意,请在您有空的时候accept回答。

以上是关于修改颜色选择器面板的主要内容,如果未能解决你的问题,请参考以下文章

颜色选择器的困惑

更改日期选择器的文本颜色

Element ColorPicker 颜色选择器绑定值value / v-model差异问题

如何利用NetBeans Swing颜色选择器控制按钮背景

如何知道 HTML5 输入类型颜色是不是可用作颜色选择器?

一个灵活高度自定义的JavaScript颜色选择器