JList: setCellRenderer(ListCellRenderer cellRenderer) : JList « javax.swing « Java by API






JList: setCellRenderer(ListCellRenderer cellRenderer)

  

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;

import javax.swing.DefaultListCellRenderer;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;

public class MainClass {
  public static void main(String args[]) throws Exception {
    Object elements[][] = { { new Font("Courier", Font.BOLD, 16), Color.YELLOW, "This" },
        { new Font("Helvetica", Font.ITALIC, 8), Color.DARK_GRAY, "Computer" } };

    JFrame frame = new JFrame("Complex Renderer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JList jlist = new JList(elements);
    ListCellRenderer renderer = new ComplexCellRenderer();
    jlist.setCellRenderer(renderer);
    JScrollPane scrollPane = new JScrollPane(jlist);
    frame.add(scrollPane, BorderLayout.CENTER);

    frame.setSize(300, 200);
    frame.setVisible(true);
  }

}

class ComplexCellRenderer implements ListCellRenderer {
  protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();

  public Component getListCellRendererComponent(JList list, Object value, int index,
      boolean isSelected, boolean cellHasFocus) {
    Font theFont = null;
    Color theForeground = null;
    String theText = null;

    JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index,
        isSelected, cellHasFocus);

    if (value instanceof Object[]) {
      Object values[] = (Object[]) value;
      theFont = (Font) values[0];
      theForeground = (Color) values[1];
      theText = (String) values[2];
    } else {
      theFont = list.getFont();
      theForeground = list.getForeground();
      theText = "";
    }
    if (!isSelected) {
      renderer.setForeground(theForeground);
    }
    renderer.setText(theText);
    renderer.setFont(theFont);
    return renderer;
  }
}

           
         
    
  








Related examples in the same category

1.JList.VERTICAL_WRAP
2.new JList(Object[] listData)
3.new JList(Vector listData)
4.new JList(ListModel dataModel) (Share model with JComboBox)
5.new JScrollPane(JList list)
6.JList: addListSelectionListener(ListSelectionListener listener)
7.JList: addMouseListener(MouseListener lis)
8.JList: addSelectionInterval(int anchor, int lead)
9.JList: clearSelection()
10.JList: getFirstVisibleIndex()
11.JList: getLastVisibleIndex()
12.JList: getLayoutOrientation()
13.JList: getMaxSelectionIndex()
14.JList: getNextMatch(String prefix, int startIndex, Bias bias)
15.JList: getSelectedIndices()
16.JList: getSelectedValues()
17.JList.getSelectionBackground()
18.JList: getSelectionForeground()
19.JList: getVisibleRowCount()
20.JList: isSelectedIndex(int index)
21.JList: isSelectionEmpty()
22.JList: locationToIndex(Point p)
23.JList: removeSelectionInterval(int index0, int index1)
24.JList: setDragEnabled(boolean b)
25.JList: setFixedCellHeight(int height)
26.JList: setFixedCellWidth(int width)
27.JList: setLayoutOrientation(int ori)
28.JList: setModel(ListModel model)
29.JList: setPrototypeCellValue(Object prototypeCellValue)
30.JList: setSelectedIndex(int index)
31.JList: setSelectedValue(Object anObject, boolean shouldScroll)
32.JList: setSelectionInterval(int anchor, int lead)
33.JList: setSelectionMode(int selectionMode)
34.JList: setVisibleRowCount(int count)
35.extends JList (custom tooltops)