【发布时间】:2011-08-16 11:10:33
【问题描述】:
我希望将在我的文本字段中输入的值传递到数组列表中,尽管我似乎无法做到这一点。我可以查看使用时在控制台中输入的详细信息
System.out.println(houses.get(1).getHouseNumber())
但这不会将新输入的值发布到我的代码中的数组列表中,我不明白为什么。
ArrayList 和 ActionListener 代码
final ArrayList<House> houses = new ArrayList<House>();
houses.add(new House());
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
House house = new House();
house.setHouseNumber(houseNumber.getText());
house.setStreetName(streetName.getText());
house.setTown(town.getText());
house.setPostcode(postcode.getText());
houses.add(house);
System.out.println(houses.get(1).getHouseNumber());
System.out.println(houses.get(1).getStreetName());
System.out.println(houses.get(1).getTown());
System.out.println(houses.get(1).getPostcode());
}
});
图形界面代码
public void go(){
frame = new JFrame();
panel = new JPanel();
HouseNumberLabel = new JLabel ("House Number");
houseNumber = new JTextField ("");
StreetNameLabel = new JLabel ("Street name");
streetName = new JTextField ("");
TownLabel = new JLabel ("Town");
town = new JTextField ("");
PostcodeLabel = new JLabel ("Postcode");
postcode = new JTextField ("");
BedsLabel = new JLabel ("Number of beds");
beds = new JTextField ("");
PriceLabel = new JLabel ("Price (£)");
price = new JTextField ("");
TypeLabel = new JLabel ("Building Type");
type = new JTextField ("");
button = 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)
房屋等级代码
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;
}
【问题讨论】:
-
根据您的代码,您没有从
JtextField获取值。Submit是什么类型的? -
@Darren:建议,不要使用大写字母作为变量名的首字母。您从哪里获得 houseNumber、town...以及所有这些信息?
-
@Harry Joy:谢谢,我已将变量 submit 更改为小写,并添加了显示 houseNUMber 来自何处的附加代码
-
您可能希望确保与您的侦听器相关的事件实际上正在被触发。通过了解什么是“提交”,也许我们可以推断出更多。但是这里的错误并不明显。
-
@edalorzo:我会确保动作监听器正在触发吗?并且提交只是我的 jbutton,它应该将详细信息发布到数组列表中