2016-08-22 49 views
-1

java新手。 所以,這是我的代碼。每當我點擊添加按鈕,它也會添加我添加的以前的數據。jylist顯示器在jtable顯示中翻了一番

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { 

     DefaultTableModel model = (DefaultTableModel)table.getModel(); 

     coffee coff = new coffee(name.getText(),coffeeName.getText(),Integer.parseInt(coffeePrice.getText()),buttonGroup1.getSelection().getActionCommand(),(Integer)quanOrder.getValue()); 

     coffeeArray.add(coff); 

     for(int i = 0; i < coffeeArray.size(); i++) 
     { 
      String customerName = coffeeArray.get(i).getName(); 
      String cofName = coffeeArray.get(i).getCoffeeName(); 
      int price = coffeeArray.get(i).getuPrice(); 
      String OrderMode= coffeeArray.get(i).isOrderMode(); 
      int quantity = coffeeArray.get(i).getQuanOrder(); 

      Object[] rowCoffee = {customerName,cofName,price,OrderMode,quantity}; 

      model.addRow(rowCoffee); 
     } 
+1

Soooo ...什麼問題? – Orin

+0

如何解決它...我輸入細節 - 然後添加第一次(它工作正常)。但是如果我添加另一個,在我的jtable中顯示先前的數據,然後顯示最近的數據。 –

+0

我沒有看到你設置表模型?確定你得到它,但我很確定這只是基於價值的返回不參考。 – 3kings

回答

1

兩種解決方案,

首先解決方案,只需添加你想要添加到模型中的對象:從模型

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { 

    DefaultTableModel model = (DefaultTableModel)table.getModel(); 

    coffee coff = new coffee(name.getText(),coffeeName.getText(),Integer.parseInt(coffeePrice.getText()),buttonGroup1.getSelection().getActionCommand(),(Integer)quanOrder.getValue()); 

    coffeeArray.add(coff); 

    //Instead of going through the for loop, adding objects you already have, just add the one you just added to the model. 

    model.addRow(new Object[] {coff.getName(), coff.getCoffeeName(), coff.getuPrice(), coff.isOrderMode(), coff.getQuanOrdered() }); 

解決方法二,刪除所有的表,然後通過for循環:

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { 

    DefaultTableModel model = (DefaultTableModel)table.getModel(); 

    coffee coff = new coffee(name.getText(),coffeeName.getText(),Integer.parseInt(coffeePrice.getText()),buttonGroup1.getSelection().getActionCommand(),(Integer)quanOrder.getValue()); 

    coffeeArray.add(coff); 

    //Remove all rows before adding everything from ArrayList. 
    for(int i = 0; i < model.getRowCount(); i++) 
     model.removeRow(i); 

    for(int i = 0; i < coffeeArray.size(); i++) 
    { 
     String customerName = coffeeArray.get(i).getName(); 
     String cofName = coffeeArray.get(i).getCoffeeName(); 
     int price = coffeeArray.get(i).getuPrice(); 
     String OrderMode= coffeeArray.get(i).isOrderMode(); 
     int quantity = coffeeArray.get(i).getQuanOrder(); 

     Object[] rowCoffee = {customerName,cofName,price,OrderMode,quantity}; 

     model.addRow(rowCoffee); 
    } 
0

在添加一個新的咖啡(認真小寫的類名?)後行coffeeArray.add(coff);你循環所有數組coffeeArray並添加每個咖啡元素到表中。 每次添加所有數組,所以第一次添加1st元素,第二次添加1st和2nd,第三次添加1st,2nd和3rd等等。 考慮添加到表只有新的咖啡,而不是整個陣列:

coffeeArray.add(coff); 
Object[] rowCoffee = {coff.getName(),coff.getCoffeeName(),coff.getPrice(),coff.isOrderMode(),coff.getQuanOrder()}; 
model.addRow(rowCoffee); 
+1

類名更改(謝謝) –