我正在尝试为不同的项目制作一个使用不同颜色的ComboBox.我写了一些测试代码,但似乎没有用.添加渲染器会导致程序崩溃,但将其注释掉会使框显示在框架中.
有什么我想念的,或者我做错了吗?我尝试使用自定义ComboBox Renderer教程作为示例.
这是我的代码:
TestComboColor.java
import java.awt.Color;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class TestComboColor {
static Color[] colors = {Color.BLUE, Color.GRAY, Color.RED};
static String[] strings = {"Test1", "Test2", "Test3"};
public static void main(String[] args)
{
JFrame frame = new JFrame("JAVA");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JComboBox cmb = new JComboBox();
ComboBoxRenderer renderer = new ComboBoxRenderer(cmb);
renderer.setColors(colors);
renderer.setStrings(strings);
cmb.setRenderer(renderer);
frame.add(cmb);
frame.pack();
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
ComboBoxRenderer.java
import java.awt.Color;
import java.awt.Component;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;
public final class ComboBoxRenderer …Run Code Online (Sandbox Code Playgroud)