0
我使用for循环生成了N个文本字段(N是用户输入的输入数量)。我想获取用户在这些文本字段中输入的数据并将其保存在ArrayList中。我不知道这些字段的名称,所以有什么方法可以获取文本字段名称?或者,如何将N个文本字段的数据存储到ArrayList
并使用该ArrayList中的值。这里是我的代码:如何从Java中动态生成的文本字段获取数据?
public class FCFS extends JFrame implements ActionListener{
JButton btn1,btn2,b;
JTextField tf1,tf2;
JPanel p;
Container c;
ArrayList arr=new ArrayList();
public FCFS(){
//super("FCFS");
c=getContentPane();
p=new JPanel();
JLabel lbl1=new JLabel("Enter number of processes:");
p.add(lbl1);
tf1=new JTextField(20);
p.add(tf1);
btn1=new JButton("Enter");
btn1.addActionListener(this);
p.add(btn1);
c.add(p);
}
public static void main(String args[]){
FCFS obj=new FCFS();
obj.setVisible(true);
obj.setSize(300,500);
obj.setDefaultCloseOperation(3);
}
@Override
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btn1){
p.removeAll();
int a=Integer.parseInt(tf1.getText());
for(int i=1;i<=a;i++){
p.add(new JLabel("Enter Burst for Process "+i+":"));
tf2=new JTextField(20);
p.add(tf2);
arr.add(tf2.getText());
c.add(p);
revalidate();
repaint();
}
b=new JButton("Show");
p.add(b);
c.add(p);
revalidate();
repaint();
b.addActionListener(this);
}
else if(ae. getSource()==b){
System.out.println("Hello");
System.out.println(arr);
}
}
}
我已经做了修改你的建议..但现在它给错误: “不兼容的类型:对象不能转换为JTextField” 在这一行: 为(JTextField textField:ARR){ –
谢谢..但现在它给错误:“无法找到符号..symbol:方法getText()..位置:变量jTextField的类型对象“on line:'texts.add((JTextField)textField.getText());' –
@MuhammadShuja - 哎呀,对不起,忘了括号...现在试试.. –