私は、GUIを介した学校で生徒と教師を見つけるための検索システムをプログラムの開発することに決めました。これは、OOPで、ここにあるいくつかの調整が必要ですが、私には論理的なようではありません1つの問題があります。私は先生を探していたとき、私はJTextFieldのにそこに名または姓を入力する必要があり、教師・オブジェクトとチェックのArrayListを通じループがそれらの名前がテキストフィールド内の1と一致した場合、そのメソッドを実行し検索ボタンを押してください。そして、これらの教師が複数の科目や成績を持っている場合、それはチェックしてそれがネストされたif文を通過します。教師が発見された後、その情報には、いくつかのTexfieldsとGUI上に表示されます。理論的には私は、TextFieldに入力した名前は、教師のオブジェクトからのものと一致しない場合、エラーメッセージがポップアップする必要があり「先生は私がISNを探していますと言って システムのトン。しかし、私は正しい名前を入力していても、それはエラーメッセージ毎回に私を送信し、すべての情報が表示され得ます。私はbreak文でそれを修正しようとしたが、それはどちらか動作しませんでした。缶誰かがこれで私を助けてください。ここで私が話しているコードは次のとおりです。
public void lehrerSuche()
{
String lehrername = tfSuchfeldLehrer.getText();
for(int i = 0; i < td.getFachliste(0).getListenLaengeLehrerListe();i++)
{
if(td.getFachliste(0).getLehrerliste(i).getName().equals(lehrername) || td.getFachliste(0).getLehrerliste(i).getNachname().equals(lehrername))
{
if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() && td.getFachliste(0).getLehrerliste(i).isMehrereklassen())
{
tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
tfKlasse_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlass2().getBezeichnung());
tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
tfFach_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach2().getFachbezeichnung());
}
if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() == false && td.getFachliste(0).getLehrerliste(i).isMehrereklassen())
{
tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
tfKlasse_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlass2().getBezeichnung());
tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
}
if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() && td.getFachliste(0).getLehrerliste(i).isMehrereklassen()==false)
{
tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
tfFach_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach2().getFachbezeichnung());
}
if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() == false && td.getFachliste(0).getLehrerliste(i).isMehrereklassen()==false)
{
tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
}
break;
}
else
{
switchPanels_3(panelErrorLehrer);
}
}
}
私はGitHubのに私のプロジェクトをアップロードしました。あなたは私が書かれているかを理解することができない場合、私は本当に申し訳ないので、メソッドと変数は、ドイツ語で書かれています。uは質問があれば私を押してください。私は、コードにEclipseを使用します。:このリンクは、私のGitHubにあなたを指示する必要がありhttps://github.com/Gonzo-CR/Home-Projects.gitどこリポジトリのリンクが仕事をしない場合は、GitHubの上でハメ撮り-CRのための外観をして、私のホームプロジェクトをチェックアウト私はすべてのファイルをアップロードしました。より良いこれらをundestandingためのオブジェクト指向のクラスは次のとおりです。
- 人(要約)
- Schueler
- Lehrerの
- コンパートメント
- 学校のクラス
- 特別な
- スポークスマンGUIクラス:
- Suchsystem
- Testdaten(私のすべてのオブジェクトを生成するクラス)
問題があれば可能性がありtd.getFachliste(0).getLehrerliste(i).getName().equals(lehrername)
真実ではありません非常に最初の時間にループの実行、switchPanels_3(panelErrorLehrer);
関係なく、条件はループの後の反復で満たされているかどうかの-トリガされます。
何が必要ループが終了した後にセンチネル値をチェックすることです - 例えば:
bool lehrerGefunden = false;
for(int i = 0; i < td.getFachliste(0).getListenLaengeLehrerListe();i++){
if(td.getFachliste(0).getLehrerliste(i).getName().equals(lehrername) || td.getFachliste(0).getLehrerliste(i).getNachname().equals(lehrername)){
//etc.
lehrerGefunden = true;
break;
}
}
if(!lehrerGefunden){
switchPanels_3(panelErrorLehrer);
}
そうすれば、あなたはエラーを表示するかどうかを決定する前に、リスト内のすべてのエントリを確認してください。