这是一个JAVA中的Swing下拉列表框问题
我想弄一个窗体,里面有一个下拉列表框,假设里面内容是各种颜色,我要怎么做可以识别我选中的是哪种颜色,然后让窗体颜色和选中颜色相同,主要就是怎么识别选中的内容是哪一个,请各...
我想弄一个窗体,里面有一个下拉列表框,假设里面内容是各种颜色,我要怎么做可以识别我选中的是哪种颜色,然后让窗体颜色和选中颜色相同,主要就是怎么识别选中的内容是哪一个,请各位大神帮帮忙,谢谢
展开
2个回答
展开全部
代码如下:
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
class ColorItem {
private String name;
private Color color;
public ColorItem(String name, Color color) {
this.name = name;
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
@Override
public String toString() {
return getName();
}
}
public class App extends JFrame {
public App() {
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
JComboBox<ColorItem> cbxColor = new JComboBox<>();
cbxColor.addItem(new ColorItem("红", Color.RED));
cbxColor.addItem(new ColorItem("绿", Color.GREEN));
cbxColor.addItem(new ColorItem("蓝", Color.BLUE));
cbxColor.addItem(new ColorItem("黄", Color.YELLOW));
cbxColor.addItemListener(e -> {
ColorItem item = (ColorItem)e.getItem();
getContentPane().setBackground(item.getColor());
});
this.add(cbxColor);
getContentPane().setBackground(cbxColor.getItemAt(0).getColor());
}
public static void main(String[] args) {
new App().setVisible(true);
}
}
运行结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询