【发布时间】:2013-04-14 03:11:27
【问题描述】:
所以我正在尝试制作一个漂亮的窗口来显示从组合框中选择的颜色。但是我制作了窗口和组合框,由于某种原因我的颜色没有显示。谁能帮帮我?
据我所知,我的组合框位于窗口顶部。我想让它显示在颜色下方。
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
class Colors extends JFrame implements ItemListener
{
Choice chooseColor = new Choice();
Label lblQts = new Label("Choose color you like : ");
public Colors(String title)
{
super(title);
setLayout(new FlowLayout());
chooseColor.addItem("red");
chooseColor.addItem("green");
chooseColor.addItem("blue");
add(lblQts);
add(chooseColor);
chooseColor.addItemListener(this);
}
public void itemStateChanged(ItemEvent e)
{
String c;
Color color;
c = chooseColor.getSelectedItem();
color=Color.getColor(c);
setBackground(color);
}
}
public static void main(String[] args)
{
Colors objColor = new Colors("Color Chooser");
objColor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
objColor.setSize(400,400);
objColor.setVisible(true);
}
【问题讨论】:
-
正如我在您上一篇文章中所建议的,您需要在组合框中添加一个
Color对象,并且您需要创建一个自定义渲染器。您不能只添加一个字符串并期望它神奇地代表一种颜色。 -
为什么使用 AWT Choice 类而不是 Swing JComboBox ?
-
不要混合使用轻量和重量的组件,这只会扰乱 z 顺序并且永远不会结束
-
因为我真的很困惑如何做到这一点。
-
你是什么意思?您获得了 Swing 教程的链接,其中包含使用 JComboBox 的工作示例。那么你为什么要组成一个不同的组件来使用???这就是你有问题的原因。您没有按照教程中的工作代码进行操作。
标签: java