Java 按下按钮后,将字符串添加到JFrame中的字符串数组列表中
我的JFrame有一个编程问题。我希望我的GUI程序在用户按下“接受”按钮后向ArrayList添加单个字符串值。我已经写了几行代码,但现在我已经到了“死胡同”,不知道如何完成它。目前,我在“first_names.add(firstName);”行遇到问题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{
私有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())
}
}