Java 从文件中将值设置为组合框

Java 从文件中将值设置为组合框,java,javafx,Java,Javafx,因此,我有一个程序,可以根据用户输入(客户信息和地址)创建一个文件,在创建一些记录后,我需要从文件中获取信息,只在组合框中输入一个名称,并让该框从现有名称列表中选择以编辑客户 到目前为止,我已经掌握了一些代码: 这是我正在从输入写入文件: private void createCustomer() { //getting text from the fields int id = Integer.parseInt(txfId.getText());

因此,我有一个程序,可以根据用户输入(客户信息和地址)创建一个文件,在创建一些记录后,我需要从文件中获取信息,只在组合框中输入一个名称,并让该框从现有名称列表中选择以编辑客户

到目前为止,我已经掌握了一些代码: 这是我正在从输入写入文件:

 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();

    }
我正在尝试我的组合框选择Existing,以从名称字段中获取值并“记住”它,以及我如何做到这一点,每次打开应用程序时,它都会有我创建的客户的下拉列表

要让应用程序“记住它”,您需要将数据存储在本地或数据库中

如果您使用的是一个文件,您必须解析其中的字符串,我将使用for循环。要实际获取每个字符串,必须使用文件读取器。Java有一个扫描仪。查找扫描仪api。如果你发布文本文件的图片,我可以帮你解析。

要让应用程序“记住它”,你需要将数据存储在本地或数据库中


如果您使用的是一个文件,您必须解析其中的字符串,我将使用for循环。要实际获取每个字符串,必须使用文件读取器。Java有一个扫描仪。查找扫描仪api。如果您发布文本文件的pic,我可以帮助您解析它。

initComponents()之后调用retriveNamaData()方法到构造函数中。


这根本不是一个好的做法,我建议您为此使用数据库。

initComponents()之后将retriveNamaData()方法调用到构造函数中。


这根本不是一个好的做法,我建议您为此使用数据库

我有一个文本文件,其中包含一些以逗号分隔格式存储的数据。如何将第二个字段上载到复选框中?为了把剩下的信息输入到文本字段中,我贴了一张图片。请参阅我的问题更新,有一个链接我有一个文本文件,其中包含一些以逗号分隔格式存储的数据。如何将第二个字段上载到复选框中?为了把剩下的信息输入到文本字段中,我贴了一张图片。查看我的问题更新,有一个linkmethod chooseExisting.addItem(项目);给我一个错误,它需要字符串。我以前有过这个问题。是否有其他方法添加项目?好的,我将其更改为chooseExisting.getItems().add(item)。但是我得到的并不是我想要看到的:))在下拉菜单中,我看到了一组人员,而不是姓名,以及如果我选择一个姓名,如何将其放入字段,这样我就可以编辑索引
String item=words[5]+“”+words[9]直到生成预期结果。要将数据放入字段,有一个名为PopupMenuWillBecomeInvisible的事件。您需要实现该方法。例如:
private void chooseExistingPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){String selectedName=chooseExisting.getSelectedItem().toString();txfName.setText(selectedName);}
此视频可能会帮助您解决问题。方法选择Existing.addItem(项);给我一个错误,它需要字符串。我以前有过这个问题。是否有其他方法添加项目?好的,我将其更改为chooseExisting.getItems().add(item)。但是我得到的并不是我想要看到的:))在下拉菜单中,我看到了一组人员,而不是姓名,以及如果我选择一个姓名,如何将其放入字段,这样我就可以编辑索引
String item=words[5]+“”+words[9]直到生成预期结果。要将数据放入字段,有一个名为PopupMenuWillBecomeInvisible的事件。您需要实现该方法。例如:
private void chooseExistingPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){String selectedName=chooseExisting.getSelectedItem().toString();txfName.setText(selectedName);}
此视频可能会帮助您解决问题。
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){

    }
}