View Javadoc
1   /* %%Ignore-License */
2   package info.mikethomas.fahview.v6project.utilities;
3   
4   import java.awt.Component;
5   import javax.swing.JProgressBar;
6   import javax.swing.JTable;
7   import javax.swing.table.TableCellRenderer;
8   
9   /**
10   * Class to Add JProgressBar into a JTable Cell.
11   *
12   * @see <a href="http://fahdshariff.blogspot.com/2009/12/adding-jprogressbar-to-jtable-cell.html">
13   * fahd.blog - Adding a JProgressBar to a JTable Cell</a>
14   * @author Fahd Shariff
15   * @version $Id: $Id
16   */
17  public class ProgressCellRenderer extends JProgressBar
18          implements TableCellRenderer {
19  
20      /**
21       * Creates a JProgressBar with the range 0,100.
22       */
23      public ProgressCellRenderer() {
24          super(0, 100);
25          setValue(0);
26          setString("0%");
27          setStringPainted(true);
28      }
29  
30      /** {@inheritDoc} */
31      @Override
32      public Component getTableCellRendererComponent(
33              JTable table,
34              Object value,
35              boolean isSelected,
36              boolean hasFocus,
37              int row,
38              int column) {
39  
40          //value is a percentage e.g. 95%
41          final String sValue = value.toString();
42          int index = sValue.indexOf('%');
43          if (index != -1) {
44              int p = 0;
45              try {
46                  p = Integer.parseInt(sValue.substring(0, index));
47              }
48              catch (NumberFormatException e) {
49              }
50              setValue(p);
51              setString(sValue);
52          }
53          return this;
54      }
55  }