Java 从JTextFields过帐到数组

Java 从JTextFields过帐到数组,java,swing,arraylist,Java,Swing,Arraylist,好的,我制作了我的数组并添加了一个操作侦听器,这样当单击名为“提交”的按钮时,来自我的JTextFields的所有数据都应该输入到ArrayList中,尽管这并没有发生,但如果您能提供任何帮助,我们将不胜感激。下面是侦听器执行的操作 public class Main { String HouseNumber, StreetName, Town, Postcode, Beds, Price, Type; JTextField HouseNumber1, StreetName1,

好的,我制作了我的数组并添加了一个操作侦听器,这样当单击名为“提交”的按钮时,来自我的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);
            }
        });
    }
}
公共类主{
字符串房屋号、街道名称、城镇、邮政编码、床位、价格、类型;
JTextField 1号住宅,街道名称1,城镇1,邮编1,床位1,价格1,
类型1;
JLabel HouseNumber标签、StreetNameLabel、TownLabel、PostcodeLabel、,
床单标签、价格标签、打字标签;
JButton提交;
JPanel小组;
JFrame框架;
公共静态void main(字符串[]args){
Main gui=newmain();
gui.go();
}
公开作废go(){
frame=新的JFrame();
panel=新的JPanel();
房屋编号标签=新的JLabel(“房屋编号”);
HouseNumber1=新的JTextField(“”);
StreetNameLabel=新的JLabel(“街道名称”);
StreetName1=新的JTextField(“”);
TownLabel=新的JLabel(“城镇”);
Town1=新的JTextField(“”);
邮政编码标签=新的JLabel(“邮政编码”);
Postcode1=新的JTextField(“”);
床位标签=新标签(“床位数量”);
Beds1=新的JTextField(“”);
价格标签=新的JLabel(“价格(£)”;
价格1=新的JTextField(“”);
TypeLabel=新的JLabel(“建筑类型”);
Type1=新的JTextField(“”);
提交=新按钮(“提交”);
panel.setLayout(新的BoxLayout(panel,BoxLayout.Y_轴));
frame.getContentPane().add(面板);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。设置尺寸(300300);
frame.setVisible(true);
//向JFrame和JPanel添加内容
面板。添加(房屋编号标签);
面板。添加(房屋编号1);
面板。添加(街道名称标签);
新增(街道名称1);
面板。添加(TownLabel);
增补(1);
面板。添加(邮政编码标签);
新增(邮政编码1);
面板。添加(标签);
面板。添加(1);
面板。添加(价格标签);
面板。添加(价格1);
面板。添加(打印标签);
面板。添加(类型1);
专家组。添加(提交);
frame.pack();
frame.show();
最终ArrayList p=新ArrayList();
Submit.addActionListener(新建ActionListener()){
已执行的公共无效操作(操作事件e){
Main数组=新的Main();
HouseNumber=HouseNumber1.getText();
StreetName=StreetName1.getText();
Town=Town1.getText();
Postcode=Postcode1.getText();
p、 添加(数组);
}
});
}
}

虽然您的主类有字段,但由于它也在管理GUI,所以您不想创建
ArrayList

如果只需要收集所有字符串,则可以创建

ArrayList<String> houseDetails = new ArrayList<String>();

houseDetails.add(HouseNumber);
houseDetails.add(StreenName);
houseDetails.add(Town);
houseDetails.add(Postcode);
然后建造一座房子,设定所有的价值

final ArrayList<House> houses = new ArrayList<House>();

为了更快地获得更好的帮助,请使用标准Java变量命名约定发布一个。变量名不应以大写字符开头。您所说的定居者是什么意思?您的
Main
类如何接受这些字符串?必须有这些
set
方法或者像
array.HouseNumber=HouseNumber这样的字段150行),那么你为什么不从pastie.org创建一个pastie并在你的问题中发布链接呢?我已经编辑了主帖子,展示了这个类的所有代码,如果你能给我发送正确的方向,以便将数据传递到数组列表中,我将不胜感激,提前谢谢
final ArrayList<House> houses = new ArrayList<House>();
House house = new House();
house.setHouseNumber(HouseNumber);
...

houses.add(house);