Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按下按钮后,将字符串添加到JFrame中的字符串数组列表中_Java_Arrays_Swing_Button_Jframe - Fatal编程技术网

Java 按下按钮后,将字符串添加到JFrame中的字符串数组列表中

Java 按下按钮后,将字符串添加到JFrame中的字符串数组列表中,java,arrays,swing,button,jframe,Java,Arrays,Swing,Button,Jframe,我的JFrame有一个编程问题。我希望我的GUI程序在用户按下“接受”按钮后向ArrayList添加单个字符串值。我已经写了几行代码,但现在我已经到了“死胡同”,不知道如何完成它。目前,我在“first_names.add(firstName);”行遇到问题 公共类卡扩展JFrame{ 私有JTextField名字; 私有JTextField lastName; 私人JTextField金额; 私人按钮接受; 公共卡(){ 超级提款机; setLayout(新的FlowLayout()); fi

我的JFrame有一个编程问题。我希望我的GUI程序在用户按下“接受”按钮后向ArrayList添加单个字符串值。我已经写了几行代码,但现在我已经到了“死胡同”,不知道如何完成它。目前,我在“first_names.add(firstName);”行遇到问题

公共类卡扩展JFrame{
私有JTextField名字;
私有JTextField lastName;
私人JTextField金额;
私人按钮接受;
公共卡(){
超级提款机;
setLayout(新的FlowLayout());
firstName=newjtextfield(“在此处输入您的名字”);
firstName.setEditable(true);
加上(名字);
lastName=newjtextfield(“在此处输入您的姓氏”);
添加(姓氏);
金额=新的JTextField(“在此处输入金额”);
增加(金额);
接受=新的按钮(“接受”);
添加(接受);
newHandler=newnewHandler();
addActionListener(处理程序);
addActionListener(处理程序);
amount.addActionListener(处理程序);
accept.addActionListener(处理程序);
}
}
私有类newHandler实现ActionListener{
ArrayList first_names=新的ArrayList();
ArrayList last_names=新的ArrayList();
已执行的公共无效操作(操作事件){
if(event.getSource()==firstName){
名字。添加(名字);
}
}
}
谢谢你的建议。

试试firstName.getText()


在粗略地看了一下代码之后,有一件事似乎跳了出来。您已使用类型字符串参数化了ArrayList。这一行:

 first_names.add(firstName);
添加此对象:

private JTextField firstName;
这实际上不是一个字符串,而是一个JTextField

请改为尝试
firstName.getText()
,这样可以解决您的问题。

这一行似乎是错误的:

first_names.add(firstName);
first\u names
字符串的
数组列表
,因此在执行
add()
操作时,必须为其指定一个
字符串
getText()
方法返回
firstName
字符串:

first_names.add(firstName.getText());

您只需添加一个操作列表器。下面是一个可能对您有所帮助的代码

private JTextField firstName; 
private JTextField lastName;
private JTextField amount;
private JButton accept;
private ArrayList<String> first_names = new ArrayList<String>();
private ArrayList<String> last_names = new ArrayList<String>();

public Card() {
    super("Cash Machine");
    setLayout(new FlowLayout());

    firstName = new JTextField("Enter your first name here");
    firstName.setEditable(true);
    add(firstName);

    lastName = new JTextField("Enter your last name here");
    add(lastName);

    amount = new JTextField("Enter amount here");
    add(amount);

    accept = new JButton("Accept");
    add(accept);

    //ONE LISTENER
    accept.addActionListener(handler);

}

private class newHandler implements ActionListener {


    public void actionPerformed(ActionEvent event) {

    //Adding textField values to your lists
        first_names.add(firstName.getText());
        last_names.add(lastName.getText())


    }


}
private JTextField firstName;
私有JTextField lastName;
私人JTextField金额;
私人按钮接受;
private ArrayList first_names=new ArrayList();
私有ArrayList last_names=新ArrayList();
公共卡(){
超级提款机;
setLayout(新的FlowLayout());
firstName=newjtextfield(“在此处输入您的名字”);
firstName.setEditable(true);
加上(名字);
lastName=newjtextfield(“在此处输入您的姓氏”);
添加(姓氏);
金额=新的JTextField(“在此处输入金额”);
增加(金额);
接受=新的按钮(“接受”);
添加(接受);
//一个听众
accept.addActionListener(处理程序);
}
私有类newHandler实现ActionListener{
已执行的公共无效操作(操作事件){
//将文本字段值添加到列表中
first_names.add(firstName.getText());
last\u names.add(lastName.getText())
}
}

错误是什么?你能分享日志吗?他似乎在所有组件中添加了一个ActionListner,这是错误的。
first_names.add(firstName.getText());
private JTextField firstName; 
private JTextField lastName;
private JTextField amount;
private JButton accept;
private ArrayList<String> first_names = new ArrayList<String>();
private ArrayList<String> last_names = new ArrayList<String>();

public Card() {
    super("Cash Machine");
    setLayout(new FlowLayout());

    firstName = new JTextField("Enter your first name here");
    firstName.setEditable(true);
    add(firstName);

    lastName = new JTextField("Enter your last name here");
    add(lastName);

    amount = new JTextField("Enter amount here");
    add(amount);

    accept = new JButton("Accept");
    add(accept);

    //ONE LISTENER
    accept.addActionListener(handler);

}

private class newHandler implements ActionListener {


    public void actionPerformed(ActionEvent event) {

    //Adding textField values to your lists
        first_names.add(firstName.getText());
        last_names.add(lastName.getText())


    }


}