从 JTextFields 发布到数组中
Posted
技术标签:
【中文标题】从 JTextFields 发布到数组中【英文标题】:Posting from JTextFields into array 【发布时间】:2011-08-15 16:07:33 【问题描述】:好的,所以我已经创建了我的数组并添加了一个动作侦听器,这样当单击名为“提交”的按钮时,我的 JTextFields 中的所有数据都应该输入到 ArrayList 中,尽管这没有发生,任何关于为什么不的帮助都是赞赏。下面是执行的动作侦听器动作。
public class Main
String HouseNumber, StreetName, Town, Postcode, Beds, Price, Type;
JTextField HouseNumber1, StreetName1, Town1, Postcode1, Beds1, Price1,
Type1;
JLabel HouseNumberLabel, StreetNameLabel, TownLabel, PostcodeLabel,
BedsLabel, PriceLabel, TypeLabel;
JButton Submit;
JPanel panel;
JFrame frame;
public static void main(String[] args)
Main gui = new Main();
gui.go();
public void go()
frame = new JFrame();
panel = new JPanel();
HouseNumberLabel = new JLabel("House Number");
HouseNumber1 = new JTextField("");
StreetNameLabel = new JLabel("Street name");
StreetName1 = new JTextField("");
TownLabel = new JLabel("Town");
Town1 = new JTextField("");
PostcodeLabel = new JLabel("Postcode");
Postcode1 = new JTextField("");
BedsLabel = new JLabel("Number of beds");
Beds1 = new JTextField("");
PriceLabel = new JLabel("Price (£)");
Price1 = new JTextField("");
TypeLabel = new JLabel("Building Type");
Type1 = new JTextField("");
Submit = new JButton("Submit");
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
// Add contents to JFrame and JPanel
panel.add(HouseNumberLabel);
panel.add(HouseNumber1);
panel.add(StreetNameLabel);
panel.add(StreetName1);
panel.add(TownLabel);
panel.add(Town1);
panel.add(PostcodeLabel);
panel.add(Postcode1);
panel.add(BedsLabel);
panel.add(Beds1);
panel.add(PriceLabel);
panel.add(Price1);
panel.add(TypeLabel);
panel.add(Type1);
panel.add(Submit);
frame.pack();
frame.show();
final ArrayList<Main> p = new ArrayList<Main>();
Submit.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
Main array = new Main();
HouseNumber = HouseNumber1.getText();
StreetName = StreetName1.getText();
Town = Town1.getText();
Postcode = Postcode1.getText();
p.add(array);
);
【问题讨论】:
如需尽快获得更好的帮助,请发帖SSCCE。 使用标准 Java 变量命名约定。变量名不应以大写字符开头。 【参考方案1】:虽然您的 Main 类具有字段,但由于它还管理 GUI,您不想创建 ArrayList<Main>
如果你只需要收集所有的字符串,那么你可以创建
ArrayList<String> houseDetails = new ArrayList<String>();
houseDetails.add(HouseNumber);
houseDetails.add(StreenName);
houseDetails.add(Town);
houseDetails.add(Postcode);
但更简洁的做法是创建一个类来管理这些
class House
private String houseNumber;
private String streetName;
private String town;
private String postcode;
public String getHouseNumber()
return houseNumber;
public void setHouseNumber(String houseNumber)
this.houseNumber = houseNumber;
public String getStreetName()
return streetName;
public void setStreetName(String streetName)
this.streetName = streetName;
public String getTown()
return town;
public void setTown(String town)
this.town = town;
public String getPostcode()
return postcode;
public void setPostcode(String postcode)
this.postcode = postcode;
然后创建一个 House 并设置所有值。
final ArrayList<House> houses = new ArrayList<House>();
在你的 actionPerformed 事件中
House house = new House();
house.setHouseNumber(HouseNumber);
...
houses.add(house);
【讨论】:
定居者是什么意思? 您的Main
类如何获取这些字符串?必须有这些set
方法或只是像array.HouseNumber = HouseNumber;
这样的字段
如果我可以向您展示我的整个代码会更好吗?我有点困惑大声笑
是的,这会有所帮助。但如果代码太多(> 150 行),那么为什么不从 paste.org 创建一个馅饼并将链接发布到您的问题中
我已经编辑了显示类中所有代码的主要帖子,如果您能按照正确的方向发送给我,以便将数据传递到数组列表中,我将不胜感激,谢谢前进以上是关于从 JTextFields 发布到数组中的主要内容,如果未能解决你的问题,请参考以下文章
在 java 中使用 JTextfields 将数据更新到 oracle 数据库中的问题