将JProgressBar添加到JTable单元格

时间:2019-05-25 13:08:33

标签: java swing nullpointerexception jtable renderer

我无法使用JProgressBar替换表中的列

我将单元格渲染器应用于表中的特定列: table.getColumn(“ PROGRES”)。setCellRenderer(new ProgressCellRenderer()); 但它只是删除列。

  public class ProgressCellRenderer extends JProgressBar
                        implements TableCellRenderer {

  /**
   * Creates a JProgressBar with the range 0,100.
   */
  public ProgressCellRenderer(){
    super(0, 100);
    setValue(0);
    setString("0%");
    setStringPainted(true);
  }

  public Component getTableCellRendererComponent(
                                    JTable table,
                                    Object value,
                                    boolean isSelected,
                                    boolean hasFocus,
                                    int row,
                                    int column) {

    //value is a percentage e.g. 95%
    final String sValue = value.toString();
    int index = sValue.indexOf('%');
    if (index != -1) {
      int p = 0;
      try{
        p = Integer.parseInt(sValue.substring(0, index));
      }
      catch(NumberFormatException e){
      }
      setValue(p);
      setString(sValue);
    }
    return this;
  }

0 个答案:

没有答案
相关问题