final JPanel pnlMain = new JPanel();
final JScrollPane scrDisplay = new JScrollPane();
- tblDisplay = new JTable();
+ tblDisplay = new MainTable();
final JPanel pnlButton = new JPanel();
btnStart = new JButton();
btnStop = new JButton();
--- /dev/null
+package yukihane.inqubus.gui;
+
+import java.awt.Component;
+import javax.swing.JProgressBar;
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import yukihane.inqubus.model.Progress;
+
+/**
+ *
+ * @author yuki
+ */
+public class MainTable extends JTable {
+
+ public MainTable() {
+ super();
+ setDefaultRenderer(Progress.class, new ProgressRenderer());
+ }
+
+ @Override
+ public TableCellRenderer getCellRenderer(int row, int column) {
+ return super.getCellRenderer(row, column);
+ }
+}
+
+class ProgressRenderer extends JProgressBar implements TableCellRenderer {
+
+ private static final long serialVersionUID = 1L;
+
+ public ProgressRenderer() {
+ super(0, 100);
+ setStringPainted(true);
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
+ int row, int column) {
+ if (value == null) {
+ return this;
+ }
+
+ final Progress p = (Progress) value;
+ int percent = (int) p.getPercent();
+ if (percent < 0 || percent > 100) {
+ percent = 100;
+ }
+ setValue(percent);
+ setString(p.getText());
+ System.out.println(percent + "," + p.getText());
+
+ return this;
+ }
+}