当前位置: 首页 > 面试题库 >

Java Swing问题-使用调色板

陶胤
2023-03-14
问题内容

我在这里遇到问题-选择颜色后(使用JColorChooser),十六进制值存储在文本字段中。我想做的是在十六进制值旁边的另一个文本框中显示颜色的 名称
,但是我不确定如何获得颜色名称?我包含了我的代码,也许有人可以给我一些有用的提示:

public class Main extends JComponent implements Accessible {
    public ColorSelectionModel selectionModel;
    public static final String SELECTION_MODEL_PROPERTY = "selectionModel";
    public JColorChooser chooser;
    public Color color;

    public void process() {
        JFrame frame;
        JButton button;
        final JTextField text1, text2;

        // Initialize variables
        chooser = new JColorChooser();
        frame = new JFrame();
        JPanel panel = new JPanel();
        button = new JButton("Show color Palette");
        text1 = new JTextField(20);
        text2 = new JTextField(20);

        // Setup UI
        frame.add(panel);
        panel.add(button);
        panel.add(text1);
        panel.add(text2);
        panel.add(chooser)
        chooser.setVisible(false);

        button.setLocation(800, 600);
        button.setActionCommand("");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                color = chooser.showDialog(chooser, "SHOW THE COLOR",
                        chooser.getColor());
                {
                    if (color != null) {
                        String hex = Integer.toHexString(color.getRGB() & 0xffffff);
                        hex = "#" + hex;
                        text1.setText(hex);
                    }
                }
            }
        });

        frame.setVisible(true);
        frame.setSize(1000, 800);
    }

    public static void main(String[] argv) {
        // Run the code
        Main m1 = new Main();
        m1.process();
    }
}

问题答案:

我是通过以下方式实现的Java Reflection:(在中static final Color定义的作品java.awt.Color

这是我的代码:

public static String getNameReflection(Color colorParam) {
        try {
            //first read all fields in array
            Field[] field = Class.forName("java.awt.Color").getDeclaredFields();
            for (Field f : field) {
                String colorName = f.getName();
                Class<?> t = f.getType();
                // System.out.println(f.getType());
                // check only for constants - "public static final Color"
                if (t == java.awt.Color.class) {
                    Color defined = (Color) f.get(null);
                    if (defined.equals(colorParam)) {
                        System.out.println(colorName);
                        return colorName.toUpperCase();
                    }
                }
            }
        } catch (Exception e) {
            System.out.println("Error... " + e.toString());
        }
        return "NO_MATCH";
    }

来源:http :
//ganeshtiwaridotcomdotnp.blogspot.com/2011/12/java-reflection-getting-name-
of-color.html



 类似资料:
  • 我很好奇,在放置组件时,如何使用miglaway在网格上均匀分布组件: 例如,如果我在一个按钮组中放置四个JRadioButton以跨越3行2列(2,3),然后放置三个JButton,则分布的权重是不相等的,我最终会得到以下结果: 如图所示,A和B的大小相同,C保留剩余的空间:我希望A、B、C在垂直方向上等于三分之一。 如果这在GridBagLayout中是可能的,我也可以利用它,但是我在任何一种

  • 我使用这个脚本来填充dynamo db:https://docs . AWS . Amazon . com/Amazon DynamoDB/latest/developer guide/loaddataphp . html 我在使用AWS SDK时遇到了这个错误: PHP致命错误:未捕获的异常“Aws\exception\CredentialsException”,消息为“无法从/root/读取凭

  • 我正在用GWT/GXT开发一个基于浏览器的应用程序。html文件包含一个用html编写的静态头文件和一个用视口填充的div。 视口在这里非常有用,因为它允许自动调整大小。但是,视口始终随浏览器大小而调整大小,并且不考虑html标题大小。所以我总是有一部分视口隐藏:/ 你知道另一种方法吗? 对不起,我的英语很差:)谢谢

  • Swoole性能如何 QPS对比 使用 Apache-Bench工具(ab) 对Nginx静态页、Golang Http程序、PHP7+Swoole Http程序进行压力测试。在同一台机器上,进行并发100共100万次Http请求的基准测试中,QPS对比如下: 软件 QPS 软件版本 Nginx 164489.92 nginx/1.4.6 (Ubuntu) Golang 166838.68 go

  • 问题内容: 使用POI时,excel文档中的单元格和字体包含颜色信息,这些信息并不总是返回rgb值,并且通常仅提供索引值。必须对索引值进行对照以获取颜色。在HSSFWorkbook(xls)中,有一种方法可以用来获取调色板: 当访问XSSFWorkbook(xlsx)时,没有这种方法,实际上我在相关类的任何地方都找不到调色板信息。我能够从XSSFont和Cell中获得索引值,但是获取尽可能多的颜色

  • 使用POI时,excel文档中的单元格和字体包含颜色信息,这些信息并不总是返回rgb值,而且通常只提供索引值。索引值必须对照某物进行查找才能得到颜色。在HSSFWorkbook(xls)中,有一种方法可用于获取调色板: 我通过CellStyle获得XSSFColor,如下所示: 通过indexedcolors获取颜色名称: 类似的问题:如何获得给定单元格的(Java Apache POI HSSF