将用户输入存储在数组或数组列表中
Storing User Input in an Array or an Arraylist
第一次发帖,如有问题请见谅。
我一直在 netbeans 中摆弄 GUI,并试图将用户输入从文本字段获取到数组或 ArrayList 中。我试图暂时存储用户输入的客户名称、地址、日期、网点数量和区域数量,然后将它们显示在 TextArea 中作为按日期排序的列表。
我刚才试过的代码是:
private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {
List<List<String>> model = new ArrayList<List<String>>();
ArrayList<Double> numOutlets = new ArrayList<Double>();
nameField.selectAll();
addressField.selectAll();
outletField.selectAll();
String customerName = nameField.getSelectedText();
String address = addressField.getSelectedText();
List<String> line = Arrays.asList(new String[]{customerName, address});
model.add(line);
StringBuilder sb = new StringBuilder();
Display.append(String.format("Customer Address"));
for(List<String> input : model) {
for (String item : input) {
Display.append(item);
if (input.indexOf(item) == input.size()-1) {
Display.append("\n");
} else {
Display.append("\t");
}
}
}
/*Display.append(String.format(" " + installationNumber + " " + customerName + " " + address));
nameField.setText("");
addressField.setText("");
zoneField.setText("");
outletField.setText("");
dateField.setText("");
installationNumber++;
我遇到的主要问题是将用户输入的文本字段存储到数组中。
如果你有其他方法我应该去做,那也很棒,我对 Java 比较陌生,我真的只做过几个小程序
非常感谢任何帮助。
在这种情况下,将数据存储在 Array 或 ArrayList 中对迭代项目的方式没有太大影响。但是,使用 ArrayList 看起来更简洁,因为它将相关信息(一个客户的姓名和地址)组合在一起。
我认为更好的方法是创建一个模型 class 来保存数据。像这样:
private class Customer {
private name;
private address;
//getter and setter methods
}
然后在您的代码中,您保存如下信息:
List<Customer> customers = new ArrayList<Customer>();
String customerName = nameField.getSelectedText();
String address = addressField.getSelectedText();
Customer customer = new Customer();
customer.setName(customerName);
customer.setAddress(address);
customers.add(customer);
现在您可以遍历客户列表:
for(Customer input : customers) {
Display.append(input.getName());
Display.append("\t");
Display.append(input.getAddress());
Display.append("\n");
}
如果您想显示来自客户的更多信息(如电话号码、性别等),这也会更容易。如果您使用数组或 ArrayList,那么代码会是什么样子?
第一次发帖,如有问题请见谅。
我一直在 netbeans 中摆弄 GUI,并试图将用户输入从文本字段获取到数组或 ArrayList 中。我试图暂时存储用户输入的客户名称、地址、日期、网点数量和区域数量,然后将它们显示在 TextArea 中作为按日期排序的列表。
我刚才试过的代码是:
private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {
List<List<String>> model = new ArrayList<List<String>>();
ArrayList<Double> numOutlets = new ArrayList<Double>();
nameField.selectAll();
addressField.selectAll();
outletField.selectAll();
String customerName = nameField.getSelectedText();
String address = addressField.getSelectedText();
List<String> line = Arrays.asList(new String[]{customerName, address});
model.add(line);
StringBuilder sb = new StringBuilder();
Display.append(String.format("Customer Address"));
for(List<String> input : model) {
for (String item : input) {
Display.append(item);
if (input.indexOf(item) == input.size()-1) {
Display.append("\n");
} else {
Display.append("\t");
}
}
}
/*Display.append(String.format(" " + installationNumber + " " + customerName + " " + address));
nameField.setText("");
addressField.setText("");
zoneField.setText("");
outletField.setText("");
dateField.setText("");
installationNumber++;
我遇到的主要问题是将用户输入的文本字段存储到数组中。
如果你有其他方法我应该去做,那也很棒,我对 Java 比较陌生,我真的只做过几个小程序
非常感谢任何帮助。
在这种情况下,将数据存储在 Array 或 ArrayList 中对迭代项目的方式没有太大影响。但是,使用 ArrayList 看起来更简洁,因为它将相关信息(一个客户的姓名和地址)组合在一起。 我认为更好的方法是创建一个模型 class 来保存数据。像这样:
private class Customer {
private name;
private address;
//getter and setter methods
}
然后在您的代码中,您保存如下信息:
List<Customer> customers = new ArrayList<Customer>();
String customerName = nameField.getSelectedText();
String address = addressField.getSelectedText();
Customer customer = new Customer();
customer.setName(customerName);
customer.setAddress(address);
customers.add(customer);
现在您可以遍历客户列表:
for(Customer input : customers) {
Display.append(input.getName());
Display.append("\t");
Display.append(input.getAddress());
Display.append("\n");
}
如果您想显示来自客户的更多信息(如电话号码、性别等),这也会更容易。如果您使用数组或 ArrayList,那么代码会是什么样子?