java Jlist问题

如何让JList的不同列表项显示不同的颜色???比如,让奇数行显示蓝色,偶数行显示黑色??如何设置某行颜色后,使其不因为鼠标的选择而变颜色。。不是setSelection... 如何让JList的不同列表项显示不同的颜色???
比如,让奇数行显示蓝色,偶数行显示黑色??

如何设置某行颜色后,使其不因为鼠标的选择而变颜色。。不是setSelectionBackground()方法!!
给个代码例子。。。给代码!给代码!!
高手解决!!
展开
 我来答
akfucc
2009-11-09 · TA获得超过5454个赞
知道大有可为答主
回答量:1771
采纳率:0%
帮助的人:2206万
展开全部
package com.akfucc.zhidao;

import java.awt.Color;
import java.awt.Component;

import javax.swing.DefaultListCellRenderer;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.ListModel;

/**
* @description: http://zhidao.baidu.com/question/124865850.html
* @author akfucc
* @date Nov 9, 2009
*
*/
public class Zhidao extends JFrame {
ListModel model;
JList listTest;

public Zhidao() {
super("JList 测试");

listTest = new JList(new String[] { "Item1", "Item2", "Item3", "Item4",
"Item4" });

// 设置这个东西
listTest.setCellRenderer(new MyRenderer());
this.add(listTest);

// //

this.setSize(200, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

// 重点所在
private static class MyRenderer extends DefaultListCellRenderer {

public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected,
cellHasFocus);
if (index % 2 == 0) {
setBackground(Color.red);
} else {
setBackground(Color.green);
}
return this;
}

}

public static void main(String[] args) {
new Zhidao();
}
}
happytemplar
2009-11-09 · 超过18用户采纳过TA的回答
知道答主
回答量:121
采纳率:0%
帮助的人:63.8万
展开全部
1111111111
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daay1986
2009-11-09 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1479万
展开全部
import java.awt.Color;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;

class MyCellRenderer extends JLabel implements ListCellRenderer {

public MyCellRenderer() {
setOpaque(true);
}

public Component getListCellRendererComponent(JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
this.setForeground(Color.WHITE);
setText(value.toString());

if (index % 2 == 0) {
setBackground(Color.BLACK);
} else {
setBackground(Color.BLUE);
}

return this;
}
}

public class Test {

public static void main(String[] args) {
MyCellRenderer cellRenderer = new MyCellRenderer();
JList list = new JList(new Object[]{1, 2, 3, 4, 5, 6});
list.setCellRenderer(cellRenderer);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(3);
frame.setContentPane(list);
frame.setVisible(true);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式