We would like to know how to install JTextArea as JList renderer.
import java.awt.Color; import java.awt.Component; /*from w ww .j a va 2 s . c o m*/ import javax.swing.BorderFactory; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.ListCellRenderer; public class Main extends JPanel { final String[] DATA = { "One\n1", "Two\n2", "Three\n3" }; DefaultListModel<String> listModel = new DefaultListModel<>(); JList<String> list = new JList<>(listModel); public Main() { list.setCellRenderer(new Listm(3, 30)); add(new JScrollPane(list)); for (String datum : DATA) { listModel.addElement(datum); } } public static void main(String[] args) { JFrame frame = new JFrame(); frame.getContentPane().add(new Main()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } } class Listm extends JTextArea implements ListCellRenderer { protected Listm(int rows, int cols) { super(rows, cols); setBorder(BorderFactory.createLineBorder(Color.blue)); } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { setText(value.toString()); if (cellHasFocus) { setBackground(Color.RED); } else if (isSelected) { setBackground(Color.BLUE); } else { setBackground(null); } return this; } }