2017-04-06 8 views
1

this is the picture of the form I am working on私は、ユーザー入力(顧客情報と住所)からファイルを作成し、レコードを作成した後、ファイルを作成する必要があります。コンボボックスにのみ名前が表示され、そのボックスに既存の名前リストから選択して顧客を編集します。ファイルからコンボボックスに値を設定する

私がこれまで持っているコードの一部: これは私が入力からファイルに書いてある:私は提出の名前から値を取得するために私のコンボボックスのchooseExistingをしようとしています

private void createCustomer() { 
     //getting text from the fields 
     int id = Integer.parseInt(txfId.getText()); 
     String name = String.valueOf(txfName.getText()); 
     String lastName = String.valueOf(txfSurname.getText()); 
     String buisness = String.valueOf(txfBuisness.getText()); 
     String street = String.valueOf(txfStreet.getText()); 
     String unit = String.valueOf(txfUnit.getText()); 
     String city = String.valueOf(txfCity.getText()); 
     String province = String.valueOf(txfProvince.getText()); 
     String postal = String.valueOf(txfPostal.getText()); 
     String email = String.valueOf(txfEmail.getText()); 
     String phoneNumber = String.valueOf(txfPhone.getText()); 

     Address address = new Address(unit, street, city, province, postal); 
     Customer customers = new Customer(id, name, lastName, 
       phoneNumber, email, address, buisness); 

     File file = new File("customer.txt"); 
     //appending to a file 
     try (PrintWriter writer = new PrintWriter(new FileWriter(file, true))) { 

      writer.print("id: " + id); 
      writer.print(", First name: " + name); 
      writer.print(", Last name: " + lastName); 
      writer.print(", Phone Number: " + phoneNumber); 
      writer.print(", Email: " + email); 
      writer.print(address); 
      writer.println(", Buisness: " + buisness); 
     } catch (IOException ex) { 
      System.out.println(ex.toString()); 
     } 
     chooseExisting.getItems().add(name); 
     //hooseExisting.setId(name); 
     chooseExisting.setValue(name); 
     chooseExisting.setOnAction(e -> { 

     }); 
     //clearing the text after it saved 
     txfId.clear(); 
     txfName.clear(); 
     txfSurname.clear(); 
     txfBuisness.clear(); 
     txfStreet.clear(); 
     txfUnit.clear(); 
     txfCity.clear(); 
     txfProvince.clear(); 
     txfPostal.clear(); 
     txfEmail.clear(); 
     txfPhone.clear(); 

    } 

と "それを覚えていると私はそれを行うことができますので、私はすでに作成した顧客からのドロップダウンを持っているアプリを開くたびに。

答えて

0

コールretriveNamaData()initComponents(後に自分のコンストラクタに方法)

public Constructor() { 
    initComponents(); 
    retriveNameData(); 
} 



private void createCustomer() { 
    //getting text from the fields 
    int id = Integer.parseInt(txfId.getText()); 
    String name = String.valueOf(txfName.getText()); 
    String lastName = String.valueOf(txfSurname.getText()); 
    String buisness = String.valueOf(txfBuisness.getText()); 
    String street = String.valueOf(txfStreet.getText()); 
    String unit = String.valueOf(txfUnit.getText()); 
    String city = String.valueOf(txfCity.getText()); 
    String province = String.valueOf(txfProvince.getText()); 
    String postal = String.valueOf(txfPostal.getText()); 
    String email = String.valueOf(txfEmail.getText()); 
    String phoneNumber = String.valueOf(txfPhone.getText()); 

    Address address = new Address(unit, street, city, province, postal); 
    Customer customers = new Customer(id, name, lastName, 
      phoneNumber, email, address, buisness); 

    File file = new File("customer.txt"); 
    //appending to a file 
    try (PrintWriter writer = new PrintWriter(new FileWriter(file, true))) { 

     writer.print("id: " + id); 
     writer.print(" , First name: " + name); 
     writer.print(" , Last name: " + lastName); 
     writer.print(" , Phone Number: " + phoneNumber); 
     writer.print(" , Email: " + email); 
     writer.print(address); 
     writer.println(" , Buisness: " + buisness); 
    } catch (IOException ex) { 
     System.out.println(ex.toString()); 
    } 

    retriveNameData(); 

//chooseExisting.getItems().add(name); 
//hooseExisting.setId(name); 
//chooseExisting.setValue(name); 
//chooseExisting.setOnAction(e -> { 
//  }); 
//clearing the text after it saved 

    txfId.setText(""); 
    txfName.setText(""); 
    txfSurname.setText(""); 
    txfBuisness.setText(""); 
    txfStreet.setText(""); 
    txfUnit.setText(""); 
    txfCity.setText(""); 
    txfProvince.setText(""); 
    txfPostal.setText(""); 
    txfEmail.setText(""); 
    txfPhone.setText(""); 

} 

// this method will retrieve the Name data from the text file. 
private void retriveNameData(){ 
    String line; 
    try{ 
     InputStream fis = new FileInputStream("customer.txt"); 
     InputStreamReader isr = new InputStreamReader(fis, Charset.forName("UTF-8")); 
     BufferedReader br = new BufferedReader(isr); 

     while ((line = br.readLine()) != null) { 
      String[] words = line.split(" "); 
      String item=words[5]+" "+words[9]; 
      chooseExisting.addItem(item); 
     } 
    }catch(Exception e){ 

    } 
} 

これは、すべての良い習慣ではありません、私はこのためにデータベースを使用することをお勧めいたします。

+0

メソッドchooseExisting.addItem(item);私にエラーを与える、それは文字列が必要です。私は前にその問題を抱えていた。アイテムを追加する他の方法はありますか? – Dennys

+0

いいえ、私はそれをchooseExisting.getItems()に変更しました。add(item); 。しかし、私が見たいものは私が見たいと思っているわけではありません:)))ドロップダウンメニューでは、名前を選んでいない場合は、だから私はそれを編集することができます – Dennys

+0

期待される結果を生成するまで、 'String item = words [5] +" "+ words [9]; –

0

「覚えている」アプリケーションでは、データをローカルに保存するか、データベースに保存する必要があります。

ファイルを使用している場合、内部で文字列を解析する必要がある場合は、forループを使用します。実際に各文字列を取得するには、ファイルリーダーを使用する必要があります。 Javaにはスキャナがあります。スキャナのAPIを参照してください。テキストファイルの写真を投稿すると、それを解析するのに役立ちます。

+0

私は、コンマ区切り形式で保存されたいくつかのデータを持つテキストファイルを持っています。 2番目のフィールドをチェックボックスにアップロードするには?残りの情報をテキストフィールドに取り込むこともできますか? – Dennys

+0

私は画像を投稿しました。更新された私の質問を参照してください、リンクがあります – Dennys

関連する問題