【发布时间】:2019-08-31 05:45:09
【问题描述】:
使用 JColorChooser 时,输入的 CMYK 值会转换为特定的 RGB 颜色。当在 RGB 端手动输入该颜色时,CMYK 值 和以前不一样了。
以下程序可用于演示我遇到的行为。
import java.awt.*;
import javax.swing.*;
public class ColorChooserProblem {
JFrame f = new JFrame("Testing Color Chooser");
public static void main(String[] args) {
new ColorChooserProblem().start();
}
public void start() {
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JColorChooser jc1 = new JColorChooser();
JColorChooser jc2 = new JColorChooser();
f.add(jc1, BorderLayout.NORTH);
f.add(jc2, BorderLayout.SOUTH);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
- 在两个面板中,选择 CMYK 并输入 CMYK 的任何有效数字。两个面板必须具有相同的值。
- 现在比较每个面板的 RGB 值。它们应该是相同的。
- 选择单个面板并将滑块重置为 0。
- 现在在同一面板中重新输入 RGB 值。
- 为两个面板切换到 CMYK。我看到的面板中的值是不同的。
请注意,当采用另一种方式时(即先选择 RGB 并重新输入 CMYK 值),一切都会按预期进行。我错过了什么吗 转换过程的预期是什么,或者这是一个错误?
我在 Windows 10 上运行 Java 10,我的 IDE 是 Eclipse。
也发布在http://www.javaprogrammingforums.com/java-theory-questions/41836-possible-bug-jcolorchooser.html
【问题讨论】:
标签: java swing undefined-behavior cmyk jcolorchooser