2016-04-25 12 views
0

このプログラムでは、ユーザーは検索を行うことができます。 検索結果はJTableに表示されます。 ユーザは、「編集」と呼ばれるボタンを押してその特定の「アイテム」を編集することができます。リストを使用して入力されたJTableの自動更新<T>

情報が編集され、彼がOKを押すと、jtableが更新されていません。編集前

テーブル:

http://i.stack.imgur.com/unRTk.jpg

ユーザーがボタン "編集" をクリックし、JTableはまだ古い情報を示す が、それは

http://i.stack.imgur.com/qmxd8.jpg

を更新されていない最後のフィールドを編集します

コード:

public void panelTable(){ 
    panelTable = new JPanel() 
    panelTable.setSize(400, 80); 
    panelTable.setOpaque(true); 
    table = new JTable(); 
    modele = new DefaultTableModel(); 
} 

public String getData(int colonNb ,int index){ 
    String dataTab = data[colonNb][index] + ""; 

    return dataTab; 
} 


public void creerJTable(List<Pneu> liste){ 
    String[] head= {"A", "B", "c"}; 
    this.liste = liste; 


    data = new Object[liste.size()][3]; 
    Iterator<Pneu> it = liste.iterator(); 
    int index = 0; 

    while(it.hasNext()){ 
     Pneu unPneu = it.next(); 
     data[index][0] = unPneu.construireDecription(); 
     data[index][1] = unPneu.getPrix(); 
     data[index][2] = unPneu.getNombrePneus(); 
     index++; 
    } 


    modele.setDataVector(data, head); 
    table.setModel(modele); 
    table.setRowSelectionInterval(0, 0); 
    componentScroll(data,head); 

    nbSearch++; 
} 


public void componentScroll(Object[][] data, String[] head){ 
    if(nbSearch <= 0){ 
     table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     table.setFillsViewportHeight(true); 
     table.setPreferredScrollableViewportSize(new Dimension(500, 80)); 
     table.setModel(modeleColonnesNoEdit(data, head)); 

     table.setRowSelectionInterval(0, 0); 
     table.getColumnModel().getColumn(0).setPreferredWidth(250); 
     table.getColumnModel().getColumn(1).setResizable(false); 
     table.getColumnModel().getColumn(1).setPreferredWidth(50); 
     table.getColumnModel().getColumn(2).setResizable(false); 
     table.getColumnModel().getColumn(2).setPreferredWidth(50); 

     JScrollPane scrollPane = new JScrollPane(table); 
     scrollPane.setPreferredSize(new Dimension(500, 60)); 

     panoTab.add(scrollPane); 
    } 
} 

private DefaultTableModel modeleColonnesNoEdit(Object[][] data, String[] head) { 

    return new DefaultTableModel(data, head) 
    { 

     boolean[] columnEditables = new boolean[] { false, false, false}; 

     public boolean isCellEditable(int row, int column) { 
      return columnEditables[column]; 
     } 
    }; 
} 
+0

これまでのところ質問はしていませんでした。 – MadProgrammer

+0

質問はありますが、慎重に読んでください。 情報が編集され、彼がうまくいくと、jtableは更新されていません。 –

+2

いいえ、私はどこにでも '? 'が見えません、私が見るのは*"プログラムは... "*、*" Once the info ... * "はステートメントです。しかし、あなたがこれらのことについて疑問に思っていたら、答えを見つけることを幸運にも望みます – MadProgrammer

答えて

0

もう一度メソッドcreerJTableを呼び出し、新しいList!を渡して修正しました。

これは、次のようなコードの1行です。 creerJTable(uneListe);

ありがとうございました!

関連する問題