设置列表框指定行的文字颜色
来源:互联网 发布:久久网络传奇 编辑:程序博客网 时间:2024/06/05 07:20
list.setCellRenderer(new MyRenderer(new int[] {2,3}, Color.RED)); //设置列表框的第2行和第3行文字颜色为红色class MyRenderer extends DefaultListCellRenderer { private Font font1; private Font font2; private Color rowcolor; private int row; private int[] rows; public MyRenderer() { this.font1 = getFont(); this.font2 = font1.deriveFont((float) (font1.getSize() + 10)); } public MyRenderer(int row, Color color) { this.rowcolor = color; this.row = row; } public MyRenderer(int[] rows, Color color) { this.rowcolor = color; this.rows = rows; } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (rows==null) { if (index == row) { setForeground(this.rowcolor); setFont(getFont().deriveFont((float) (getFont().getSize() + 2))); } } else { for (int i = 0; i < rows.length; i++) { if (index == rows[i]) { setForeground(this.rowcolor); setFont(getFont().deriveFont((float) (getFont().getSize() + 2))); } } } return this; } }