From 2275dfa91436599d3611db0781fab09f6e7f28cf Mon Sep 17 00:00:00 2001 From: yukihane Date: Mon, 29 Aug 2011 16:21:55 +0900 Subject: [PATCH] =?utf8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=A0JTable?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- frontend/src/yukihane/inqubus/gui/MainFrame.java | 2 +- frontend/src/yukihane/inqubus/gui/MainTable.java | 53 ++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 frontend/src/yukihane/inqubus/gui/MainTable.java diff --git a/frontend/src/yukihane/inqubus/gui/MainFrame.java b/frontend/src/yukihane/inqubus/gui/MainFrame.java index 76461fd..4fd93b2 100644 --- a/frontend/src/yukihane/inqubus/gui/MainFrame.java +++ b/frontend/src/yukihane/inqubus/gui/MainFrame.java @@ -106,7 +106,7 @@ public class MainFrame extends JFrame { 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(); diff --git a/frontend/src/yukihane/inqubus/gui/MainTable.java b/frontend/src/yukihane/inqubus/gui/MainTable.java new file mode 100644 index 0000000..f637e76 --- /dev/null +++ b/frontend/src/yukihane/inqubus/gui/MainTable.java @@ -0,0 +1,53 @@ +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; + } +} -- 2.11.0