如:一个JList中有2个字符串,一个字符串字体颜色为红色,一个字符串字体颜色为绿色,请问如何实现。另外请问如何使用JList.AccessibleJList.AccessibleJListChild 这个嵌套类啊,我定义后,老是报错。

解决方案 »

  1.   

    public class TestList { /**
     * @param args
     */
    public static void main(String[] args) {
    TestList tl = new TestList();
    tl.showUI();
    }

    public void showUI() {
    JFrame frame = new JFrame();
    JPanel pane = new JPanel(new BorderLayout());
    DefaultListModel model = new DefaultListModel();
    model.addElement("aaa");
    model.addElement("bbb");
    JList list = new JList(model);
    list.setCellRenderer(new TestCellRenderer());

    pane.add(new JLabel("test"),BorderLayout.WEST);
    pane.add(list,BorderLayout.CENTER);
    frame.getContentPane().add(pane);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.pack();
    frame.setVisible(true);
    } public class TestCellRenderer extends DefaultListCellRenderer { public TestCellRenderer() {

    }

    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
    if ("aaa".equals(value.toString()))
    c.setForeground(Color.BLUE);
    return c;
    }

    }
    }