2014-01-30 91 views
-1

我的代碼僅適用於第一行。如果它不在JTable中,我想添加一行。 Class_assing_tb是我的JTable。如何使用For循環檢查IF條件下的Jtable值

我想添加從JCombobox獲得的值到JTable,當我點擊「添加項目」按鈕。它最多隻能輸入4個項目。我想這樣做,如果我添加一個已經在JTable中的項目,我想給消息「拒絕」,否則將項目添加到JTable。

int count = Class_assing_tb.getRowCount(); 
if (count == 0) { 
    addrow(); //this is to Command For Add new Row 
} else if (count == 4) { 
    System.out.println("maximum Row Count"); 
    // msg ****** Maximum Classes 
} else { 
    int a = Class_assing_tb.getRowCount(); 
    DefaultTableModel tm2 = (DefaultTableModel) Class_assing_tb.getModel(); 
    loop: 
    for (int i = 0; i < a; i++) { 
     //System.out.println("Row Count is" + a); 
     // System.out.println("Sttate is"+i); 
     if (tm2.getValueAt(i, 0).equals(mng_stu_classatnd.getSelectedItem()) & tm2.getValueAt(i, 2).equals(mng_stu_batch.getSelectedItem()) & tm2.getValueAt(i, 3).equals(mng_stu_type.getSelectedItem())) { 
      System.out.println("Denied"); 
      break loop; 
     } else { 
      addrow();//this is to Command For Add new Row 
      // continue loop; 
     } 
    } 
} 
+1

請詳細解釋您的問題和您的代碼。 –

+0

我想添加從Jcombobox獲取值到Jtable當我點擊添加項目按鈕,它可以只輸入最多4個項目,我想這樣做,如果我在Jtable中添加已添加項目我想給一條消息「Denied」Else Add Item to jtable –

+0

_「它最多隻能輸入4個項目」_ _什麼_exactly_是_「Item」_?它是一個完整的行嗎?它只是連續的一個單元嗎?每行有多少個單元格? –

回答

1

嘗試是這樣的:

//全局聲明

private Vector<Vector<String>> data; //used for data from database 
private Vector<String> header; //used to store data header 

//顯示當負載只有頭

//create header for the table 
header = new Vector<String>(); 
header.add("Column"); 
model=new DefaultTableModel(data,header); 
table = new JTable(model); 

//中的actionPerformed()

public void actionPerformed(ActionEvent ae){ 
    if(ae.getSource()==add){ 
    int count=table.getRowCount(); 
    for(int i=1;i<=count;i++){ 
    if(table.getValueAt(i,0).equals(jComboBox.getSelectedItem())){ 
      JOptionPane.showMessageDialog((Component) null,"Duplicate..."); 
      return; 
    } 
    } 

    if(count==4){ 
      JOptionPane.showMessageDialog((Component) null,"Maximum Limit is crossed..."); 
    }else{ 
    Object d= jComboBox.getSelectedItem(); 
    model.addRow(d); 
    } 

} 
} 
+1

你應該在你的答案中加入更多解釋。雖然你的答案可能有效,但它並沒有告訴讀者他們做錯了什麼以及如何糾正錯誤。或者,如果您採用了與OP完全不同的方法,仍然要解釋您在代碼中所做的工作。它使得更好的答案:) –

+0

@peeskillet好的謝謝。我得到了,你想說什麼。下次我也會關心解釋部分。 – Aarav