【发布时间】:2016-01-12 22:21:27
【问题描述】:
我正在创建一个小应用程序,用户将通过按下按钮来选择颜色。我想当用户从JColorChooser 对话框中选择颜色并将应用程序的颜色设置为背景时,也将颜色名称放在jLabel 中。
到目前为止,我已经创建了以下代码:
private void btnChooseColorActionPerformed(java.awt.event.ActionEvent evt) {
Color color = JColorChooser.showDialog(getContentPane(), "Choose color", Color.yellow);
this.getContentPane().setBackground(color);
lblColorSelected.setText("Color: " + /* here I would like to append code that will display name of the color what user have selected */);
}
我已成功创建用户从对话框中选择颜色并将颜色作为背景应用程序,但唯一的问题是我不知道如何获取用户选择的颜色的名称。你有什么想法吗?
【问题讨论】:
-
“颜色”没有“名称”,而是有属性(RGB)。您可以使用this 之类的东西来生成颜色的十六进制表示,这很常见(在网络中经常使用)
-
感谢@MadProgrammer 的建议,但我需要在标签上显示颜色的名称。
-
正如我所说的“颜色”没有“名称”,你能做的最好的就是以最常用的形式呈现 RGB 属性,通常是十六进制值跨度>
-
另一种选择是从 RGB 生成一些范围并相应地显示颜色名称
-
拥有 256 级 R、G 和 B,共有 16,777,216 种颜色。你真的希望人类用一个唯一的名字来命名它们吗?通过遵循@MadProgrammer 的建议,我们可以唯一地识别它们。除此之外,我建议向用户展示一个使用该颜色的方形标签。