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){
}
}