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 import java.text.NumberFormat;
25
26 import javax.swing.BorderFactory;
27 import javax.swing.JFormattedTextField;
28 import javax.swing.JTable;
29 import javax.swing.JTextField;
30 import javax.swing.UIManager;
31 import javax.swing.border.Border;
32 import javax.swing.plaf.UIResource;
33 import javax.swing.table.TableCellRenderer;
34
35
36
37
38 public class PercentRenderer implements TableCellRenderer, UIResource {
39 JFormattedTextField ftf;
40
41 Border emptyBorder;
42
43 public PercentRenderer() {
44 NumberFormat numberFormat = NumberFormat.getPercentInstance();
45 numberFormat.setMinimumFractionDigits(2);
46 numberFormat.setMaximumFractionDigits(2);
47 numberFormat.setMinimumIntegerDigits(1);
48 ftf = new JFormattedTextField(numberFormat);
49 ftf.setHorizontalAlignment(JTextField.CENTER);
50
51 emptyBorder = BorderFactory.createEmptyBorder(1, 1, 1, 1);
52 }
53
54 public Component getTableCellRendererComponent(JTable table,
55 Object value, boolean isSelected, boolean hasFocus, int row,
56 int col) {
57 if (isSelected) {
58 ftf.setBackground(table.getSelectionBackground());
59 ftf.setForeground(table.getSelectionForeground());
60 } else {
61 ftf.setBackground(table.getBackground());
62 ftf.setForeground(table.getForeground());
63 }
64 if (hasFocus)
65 ftf.setBorder(UIManager
66 .getBorder("Table.focusCellHighlightBorder"));
67 else
68 ftf.setBorder(emptyBorder);
69
70 ftf.setValue(((Float) value));
71
72 return ftf;
73 }
74 }