1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package unbbayes.gui.table;
22
23 import java.awt.Component;
24
25 import javax.swing.BorderFactory;
26 import javax.swing.JRadioButton;
27 import javax.swing.JTable;
28 import javax.swing.UIManager;
29 import javax.swing.border.Border;
30 import javax.swing.plaf.UIResource;
31 import javax.swing.table.TableCellRenderer;
32
33
34
35
36
37 public class RadioButtonCellRenderer implements TableCellRenderer, UIResource {
38 JRadioButton radioButton;
39
40 Border emptyBorder;
41
42 public RadioButtonCellRenderer() {
43 radioButton = new JRadioButton();
44 radioButton.setHorizontalAlignment(JRadioButton.CENTER);
45 radioButton.setBorderPainted(true);
46 emptyBorder = BorderFactory.createEmptyBorder(1, 1, 1, 1);
47 }
48
49 public Component getTableCellRendererComponent(JTable table,
50 Object value, boolean isSelected, boolean hasFocus, int row,
51 int col) {
52 if (isSelected) {
53 radioButton.setBackground(table.getSelectionBackground());
54 radioButton.setForeground(table.getSelectionForeground());
55 } else {
56 radioButton.setBackground(table.getBackground());
57 radioButton.setForeground(table.getForeground());
58 }
59 if (hasFocus)
60 radioButton.setBorder(UIManager
61 .getBorder("Table.focusCellHighlightBorder"));
62 else
63 radioButton.setBorder(emptyBorder);
64
65 radioButton.setSelected(((Boolean) value).booleanValue());
66 return radioButton;
67 }
68 }