2014-03-14 1 views
0

이 코드를 가지고 :이 클래스를 수정 한 다음 렌더링 진행률 표시 줄의 크기를 변수로 변경 하시겠습니까?

TableColumn column = jTable2.getColumnModel().getColumn(1); 
column.setCellRenderer(new ProgressRenderer()); 

클래스 ProgressRenderer : 이제

class ProgressRenderer extends DefaultTableCellRenderer { 
    private final JProgressBar b = new JProgressBar(0, 100);// I NEED RECEIVE DE VALUE,    //LIKE THIS new JProgressBar(0, MAX); 
    private final JPanel p = new JPanel(new BorderLayout()); 

    public ProgressRenderer() { 
     super(); 
     setOpaque(true); 
    b.setStringPainted(true); 
     p.add(b); 
     //p.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); 
    } 
    @Override 
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     Integer i = (Integer) value; 

     String text = "Finalizou o Lote"; 
     if (i < 0) { 
      text = "Pausa"; 
     } else if (i < 100) { 
      b.setValue(i); 
      return p; 
     } 
     super.getTableCellRendererComponent(table, text, isSelected, hasFocus, row, column); 
     return this; 
    } 

    @Override 
    public void updateUI() { 
     super.updateUI(); 
     if (p != null) { 
      SwingUtilities.updateComponentTreeUI(p); 
     } 
    } 
} 

, ProgressRenderer 통화 기능은() 진척 바의 최대 값 매개 변수를 difine 때 나는, 필요,하지만 난 할 수 안 그랬어? 이처럼

:

TableColumn column = jTable2.getColumnModel().getColumn(1); 
    column.setCellRenderer(new ProgressRenderer(MAX)); 

클래스 ProgressRenderer()

class ProgressRenderer extends DefaultTableCellRenderer { 
    private final JProgressBar b = new JProgressBar(0, MAX);// I NEED RECEIVE DE VALUE,    //LIKE THIS new JProgressBar(0, MAX); 
    private final JPanel p = new JPanel(new BorderLayout()); 

    public ProgressRenderer() { 
     super(); 
     setOpaque(true); 
... 
... 

---- 편집 ---------- 지금은 감사하지만,이 내 큰 문제는 다음과 같습니다.

TableColumn column = jTable2.getColumnModel() GetColumn (1).; 
    column.setCellRenderer (new ProgressRenderer (maxValue));// 

// t을 추가 할시기를 어떻게 알 수 있습니까? 그는 maxValue를 내가 JTable의

private LinhasOnline getLinha() { 

    LinhasOnline linha = new LinhasOnline(); 
    linha.setNome("Linha "+j); 
      linha.setcont(j*(10)); 
      linha.setmax(100); 

      j++; 
      return linha; 
} 

private void addLinha() { 
    getModel().addLinha(getLinha());// 
} 

// 내을 getModel

private LinhasOnlineTableModel getModel() { 
    if (model == null) { 
     model = (LinhasOnlineTableModel) getTblLinhasOnline().getModel(); 
    } 
    return model; 
} 

// 내 getTblLinhasOnline에 삽입 값이 코드를 사용하고있어

를 변경하는 객체()

private JTable getTblLinhasOnline() { 
    if (jTable2 == null) { 
     jTable2 = new JTable(); 
     jTable2.setModel(new LinhasOnlineTableModel()); 
        TableColumn column = jTable2.getColumnModel().getColumn(1); 
        column.setCellRenderer(new ProgressRenderer(max)); // need put the value of object(setmax) 
    } 
    return jTable2; 
} 

답변

0

다음과 같이 수업을 변경할 수 있습니다.

+0

고마워요,하지만 지금은 다른 문제가 있습니다, 내 편집 주석을 볼 수 있기 때문에 미안하지만 코드가 필요합니다. 그러나 저에게는 설명하기가 어렵습니다. 더 나은 설명이 필요하면 알려주세요 :) – user3419041

+0

죄송합니다. 시간이 부족하여 나중에 내 게시물을 수정 해보세요. – alex2410

+0

감사합니다. 어쨌든 고맙습니다. – user3419041