【发布时间】:2021-10-02 21:20:31
【问题描述】:
我正在训练 GUI 并面临字符串格式问题。不明白如何以用户可读的格式显示列表中的颜色?
public static void main(String[] args) {
JFrame jframe = getFrame();
jframe.setTitle("Background color");
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dimension = toolkit.getScreenSize();
jframe.setBounds(dimension.width/2-250, dimension.height/2-150, 500, 300);
JPanel jpanel = new JPanel();
JButton setColor = new JButton("Set Color");
Color colors[] = {Color.red, Color.green, Color.blue, Color.black};
JComboBox<Color> selector = new JComboBox<>(colors);
setColor.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jpanel.setBackground((Color)selector.getSelectedItem());
}
});
jpanel.add(selector);
jpanel.add(setColor);
jframe.add(jpanel);
}
public static JFrame getFrame() {
JFrame jframe = new JFrame();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
return jframe;
}
}
这是我的输出:
所以,我希望显示颜色的名称而不是 java.awt.Color[.....]
提前致谢!
【问题讨论】:
-
创建一个自定义对象来保存“描述”和“颜色”,并实现 toString() 方法以返回“描述”值。例如,请参阅:Combo Box With Hidden Data。
-
你知道JColorChooser吗?
标签: java swing jcombobox tostring