1 package org.wcb.gui.renderer;
2
3 import javax.swing.*;
4 import javax.swing.table.TableCellRenderer;
5 import java.awt.*;
6 import java.io.IOException;
7 import java.io.BufferedReader;
8 import java.io.StringReader;
9 import java.util.Vector;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class MultiLineHeaderRenderer extends JList implements TableCellRenderer {
39 public MultiLineHeaderRenderer() {
40 setOpaque(true);
41 setForeground(UIManager.getColor("TableHeader.foreground"));
42 setBackground(UIManager.getColor("TableHeader.background"));
43 setBorder(UIManager.getBorder("TableHeader.cellBorder"));
44 ListCellRenderer renderer = getCellRenderer();
45 ((JLabel) renderer).setHorizontalAlignment(JLabel.CENTER);
46 setCellRenderer(renderer);
47 }
48
49 public Component getTableCellRendererComponent(JTable table, Object value,
50 boolean isSelected, boolean hasFocus, int row, int column) {
51 setFont(table.getFont());
52 String str = (value == null) ? "" : value.toString();
53 BufferedReader br = new BufferedReader(new StringReader(str));
54 String line;
55 Vector v = new Vector();
56 try {
57 while ((line = br.readLine()) != null) {
58 v.addElement(line);
59 }
60 } catch (IOException ex) {
61 ex.printStackTrace();
62 }
63 setListData(v);
64 return this;
65 }
66 }
67
68