在java中,使用JComboBox控件写入红,绿,蓝三中颜色,要求不使用Lambda 表达式写出以下代码,当选中其中一种颜色时背景颜色改为对应颜色·。
时间: 2024-03-02 16:54:08 浏览: 115
用Java语言实现颜色的变换
好的,以下是一个不使用 Lambda 表达式的示例代码:
```java
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ColorComboBoxExample {
private JFrame frame;
private JComboBox<String> colorComboBox;
private JPanel colorPanel;
private final String[] COLOR_NAMES = {"Red", "Green", "Blue"};
private final Color[] COLORS = {Color.RED, Color.GREEN, Color.BLUE};
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ColorComboBoxExample window = new ColorComboBoxExample();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public ColorComboBoxExample() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
colorComboBox = new JComboBox<>(COLOR_NAMES);
colorComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedIndex = colorComboBox.getSelectedIndex();
Color selectedColor = COLORS[selectedIndex];
colorPanel.setBackground(selectedColor);
}
});
colorComboBox.setBounds(10, 10, 100, 21);
frame.getContentPane().add(colorComboBox);
colorPanel = new JPanel();
colorPanel.setBounds(120, 10, 304, 241);
frame.getContentPane().add(colorPanel);
}
}
```
代码中的实现方式与之前相似,只是将 Lambda 表达式替换为了使用匿名内部类实现 ActionListener 接口。在 actionPerformed 方法中,获取选中的选项的索引,然后使用索引获取对应的颜色,并将其设置为 JPanel 的背景颜色。
阅读全文