2017-05-31 5 views
0

ヘルスケア管理システム(患者、医療従事者、スペシャリストなど)を作成し、JList Pannel(listEspecialistas)に表示されるスペシャリストを、特産品が展示されます。たとえば、TraumatologyはComboBoxの値であり、外傷専門医はリストパネルに表示されます。Java Windows Builder JListのロード条件

DefaultListModel <Especialista> modelo = new DefaultListModel <Especialista>(); 

そして、これを:これは

private void filtrarPor(String especialidad){//filterBy 
    //If cbEspecialidades-getSelectedItem()/ComboBoxValue==Traumatology 
    if(cbEspecialidades.getSelectedItem().equals("Traumatología")){ 
     Scanner sc; 
     Especialista aux; 
     StringTokenizer st; 

     try { 
      sc = new Scanner (especialistas); 
      sc.nextLine(); 
      while (sc.hasNextLine()) { 
       st = new StringTokenizer(sc.nextLine(), ";"); 
       while (st.hasMoreTokens() && st.equals("Traumatología")) { 

        aux = new Especialista (st.nextToken(), st.nextToken(), st.nextToken(), 
         st.nextToken(), st.nextToken(), st.nextToken(),new ImageIcon(Pacientes.class.getResource(st.nextToken()))); 

        modelo.addElement(aux); 

       } 

       listEspecialistas.setModel(modelo); 
      } 

     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 

    } 

}

モデロはクラスで上位宣言されている(コード内の「especialistas」と呼ばれる)私はtxtファイルから専門家をロードする方法です

Name;Surname;Schedule;email;phoneNumber;Speciality;profile picture route 

例:

txtファイルが構成されている方法です
Francisco;Lopez Navarro;10:00/14:00;[email protected];956325485;Traumatología;/presentacion/Imagenes/Especialistas/paco-126.png 

他の専門家の数例

プロガムがファイルをリストパネルに読み込む方法は完全に機能します(それほど効率的ではありません)ので、スキャンしたトークンの1つがTraumatology、Cardiologyに等しい場合は条件を追加しますもしそうなら)、それはその行だけを受け取り、それをmodeloに加えるでしょう。助言がありますか?ありがとうございました。

答えて

0

行のインスタンス化されたEspecialistaがモデルに追加する前の基準と一致するかどうかを確認する必要があります。

あなたがやったかもしれないいくつかの間違いを修正しました。

private void filtrarPor(String especialidad){ 
     Scanner sc; 
     Especialista aux; 
     StringTokenizer st; 

     try { 
      sc = new Scanner (especialistas); 
      sc.nextLine(); 
      while (sc.hasNextLine()) { 
       st = new StringTokenizer(sc.nextLine(), ";"); 
       if(st.countTokens() >= 7) { //skip not valid Especialista 

        aux = new Especialista (st.nextToken(), st.nextToken(), st.nextToken(), 
         st.nextToken(), st.nextToken(), st.nextToken(),new ImageIcon(Pacientes.class.getResource(st.nextToken()))); 

        if(aux.getEspecialidade().equals(especialidad)) 
         modelo.addElement(aux); 

       } 
      } 
      listEspecialistas.setModel(modelo);//you can set the model with your list after everything is loaded 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 

    } 
} 
+0

完璧に@gabrielありがとうございます非常にありがとうございます! – Supersoaker

関連する問題