OSDN Git Service

カスタムJTable
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / MainTable.java
1 package yukihane.inqubus.gui;
2
3 import java.awt.Component;
4 import javax.swing.JProgressBar;
5 import javax.swing.JTable;
6 import javax.swing.table.TableCellRenderer;
7 import yukihane.inqubus.model.Progress;
8
9 /**
10  *
11  * @author yuki
12  */
13 public class MainTable extends JTable {
14
15     public MainTable() {
16         super();
17         setDefaultRenderer(Progress.class, new ProgressRenderer());
18     }
19
20     @Override
21     public TableCellRenderer getCellRenderer(int row, int column) {
22         return super.getCellRenderer(row, column);
23     }
24 }
25
26 class ProgressRenderer extends JProgressBar implements TableCellRenderer {
27
28     private static final long serialVersionUID = 1L;
29
30     public ProgressRenderer() {
31         super(0, 100);
32         setStringPainted(true);
33     }
34
35     @Override
36     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
37             int row, int column) {
38         if (value == null) {
39             return this;
40         }
41
42         final Progress p = (Progress) value;
43         int percent = (int) p.getPercent();
44         if (percent < 0 || percent > 100) {
45             percent = 100;
46         }
47         setValue(percent);
48         setString(p.getText());
49         System.out.println(percent + "," + p.getText());
50
51         return this;
52     }
53 }