2016-04-27 5 views
0

アプリケーションに2つのチェックボックスがあります。 チェックボックスは互いに独立しています。つまり、1つを選択することも、両方を選択することも、どちらも選択することもできません。テーブルモデルをフィルタリングする

チェックボックスはテーブルモデルをフィルタリングし、テーブルは10秒ごとにリフレッシュされます。リフレッシュが発生した

checkM = checkboxM.isSelected(); 
checkI = checkboxI.isSelected(); 

た後、私はその後、試してみて、以下のように、彼らが何であったかにチェックボックスを設定します:それぞれの前に

は、次のように私は、各チェックボックスの状態を取得リフレッシュ

checkboxM.setSelected(checkM); 
checkboxI.setSelected(checkI); 

これに続いて、私のif文の後に、どのボックスが選択されているかを知ることができます。問題がどこにあるのかは、フィルターを適用する方法を考えています。a)両方のチェックボックスを選択し、 "と" B "b)チェックボックスの1つがselect私は本当にあなたのロジックに従わないだけで「A」または「B」が示されているか、何行が

if ((checkM = false) || (checkI = false)){ 
newFilter("",4); 
} 

else{ 
newFilter("A",4); 
newFilter("B",4); 


} 



//this is my filter 

private void newFilter(String x, Integer n) { 
sorterDG = new TableRowSorter (modelImbalanceTable); 
sorterDG.setRowFilter(RowFilter.regexFilter(x,n)); 
tableDG.setRowSorter(sorterDG); 
tableDG.tableChanged(new TableModelEvent(tableDG.getModel())) ; 
tableDG.repaint(); 
} 
+1

1)あなたは要件や仕様を説明してきたようなものを意味しますが、何の質問をしていません。あなたの質問は何ですか? 2)すぐに助けを得るために、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 3)インデントするコード行とブロックの論理的で一貫した形式を使用します。インデントは、コードの流れをより簡単にするためのものです。 @BjörnKautler。 –

答えて

4

を示されていないエドS0。しかし、あなたのロジックが正しければ、あなたの問題は単なる入力ミスです。 ==を使用したかった=を使用しました。 =は、checkMとcheckIに新しい値を割り当て、同時にその値を評価します。 ==は値を比較します。それに加えて、ブール値を比較してブール値を得ることは本当に役に立たない。ブール値をそのまま使用してください。

ただし、これは現在常にelseパスを実行し、決してifパスを実行しないことを意味します。そしてあなたのifパスの中に次の問題があります。フィルタは累積しませんが、最初にフィルタA、次にBを設定します。したがって、実行時には、チェックした内容に関係なく、常にBのフィルタリングが終了します。

はおそらく

if (checkM && checkI) { 
    newFilter("A|B", 4); 
} else if (checkM) { 
    newFilter("A", 4); 
} else if (checkI) { 
    newFilter("B", 4); 
} else { 
    newFilter("", 4); 
} 
+0

この問題は、私がnewFilter( "A"、4)を試してから次にelseFilter( "B"、4)を試してみると、私のelse文にあるようです。ユーザーがcheckMまたはcheckIをチェックしているか、選択されているか選択されていないかを選択した場合、 – Ingram

+0

まあ、私はあなたに正しいことをしていないと言った。私の答えに記述されているように、あなたはいつもelseパスを入力します。さらに、あなたのコードを理解する限り、フィルターを 'newFilter()'呼び出しで置き換えると、たぶんあなたはたぶん "B"値だけを表示するでしょう。 – Vampire

+0

お手伝いできますか? – Ingram

関連する問題