2016-05-04 7 views
0

jtableが2つの値のEXACTペアをチェックするボタンを囲むifステートメントが必要です。falseの場合は、そのエントリをtextboxと2に追加しますcbboxesをテーブルに追加し、そうでなければエラーを出力します。これまでのところ私はこれを作ってみた:Jtableの列の値をコンボボックスの項目と比較する

lblWarn2.setText(""); 
DefaultTableModel model = (DefaultTableModel) tblSold.getModel(); 
//get value at 

if(!cbCruises.getSelectedItem().toString().equals(tblSold.getValueAt(1, 0).toString())&!cbCabin.getSelectedItem().toString().equals(tblSold.getValueAt(1,2).toString())) 

{ 

    model.addRow(new Object[]{cbCruises.getSelectedItem().toString(), txtBuyer.getText(),cbCabin.ToString()}); 

} 
else 
{ 
lblWarn2.setText("Cabin full"); 
} 

(このテーブルは3列があり、クルーズ、バイヤー、キャビンところで) 私はgetValueAtの代わりに使用することができる方法やどのようにはあり、私はそれをリファクタリングすることができますように指定された2列を通過してこれらの値を検索し、コンボボックスで選択した項目と比較しますか?

EDIT1; ifステートメントを変更し、行の正確な値で実行されるはずのことを行います。しかし、選択した列のすべての行を実行する方法はありますか?

+0

StIngsは!=または==と比較されないので、問題です。テーブルの行数がERRORなのでわかりません。 – MadProgrammer

+0

をmodel.addRow(new (); toString(););};};}};} 。あなたがそれを空のままにしておくと、netbeansはデフォルト値になります。それを空にしても私はそれを望んでいたので動作しません – pURanoslav

答えて

0

最後に私の解決策は、このように見えた:

lblWarn2.setText(""); 
     DefaultTableModel model = (DefaultTableModel) tblSold.getModel(); 
     //get value at 

     boolean kabTaken = false; 

     for (int i = 0; i < tblSold.getModel().getRowCount(); i++) { 

      if(cbCruises.getSelectedItem().toString().equals(tblSold.getValueAt(i, 0).toString())&cbCabin.getSelectedItem().toString().equals(tblSold.getValueAt(i,2).toString())) 
      { 
       kabTaken = true; 
      } 
     } 

     if (kabTaken) 
     { 
      lblWarn2.setText("Cabin taken");    
     } 
     else 
     { 
     model.addRow(new Object[]{cbCruises.getSelectedItem().toString(), txtBuyer.getText(),cbCabin.getSelectedItem().toString()});  

     } 

基本的にはあなただけのためにループにif文をカプセル化します。

関連する問題