Java/Swing 将多个 JTextField 的输入保存到文件中

标签 java swing file

我正在尝试编写一个框架,该框架从用户处获取一堆参数并将它们保存到 csv 文件中,然后重定向到运行模拟的新框架,问题是使用 for 循环轻松生成文本字段,但是我不知道如何编写从所有文本字段检索数据的事件监听器,代码如下:

       private void ZoneTexte(String texte,JPanel pan) {
       JLabel label=new JLabel();
       label.setText(texte);
       JTextField text = new JTextField(20);
       pan.add(label);
       pan.add(text);
   }
   /**
    * 
    */
   private void SaveParam() {
       String [] param= {"Nom Milieu","ProbaRoche","ProbaHerbe","Qherbe","DistCaractHerbe","FacteurHerbe","RayonLac","ProfondeurMaxLac","SigmaLac"};
       JLabel label=new JLabel();
       label.setText("Définir vos propres paramètres de simulation:");
       EditPanel.add(label);
       for(String s:param) {
           JPanel pan1= new JPanel();
           ZoneTexte(s+" :",pan1);
           EditPanel.add(pan1);
       }
       JButton save=new JButton();
       save.setText("Enregistrer et démarrer la simulation");
       EditPanel.add(save);
       save.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub


        }
           });
   }
   [The file format that i desire is this][1]

最佳答案

恕我直言,您需要使用像 Map 这样的结构来保存对每个 TextField 的引用。然后在您的监听器中,您将解析您的内存结构,以便填充您的 csv。

// Somewhere in your init class
var fieldsMap = new HashMap<String,TextField>();

// In ZoneTexte method
fieldsMap.put(texte,text);      

// In your listener
var value = mapField.get("ProbaRoche").getText();

也许,使用该字段唯一的键,该键可以在代码的不同位置使用。

HTH

关于Java/Swing 将多个 JTextField 的输入保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61612312/

相关文章:

java - 使用 Glide Library 时,小尺寸图像会自动调整大小

java - 使用 BasicNameValuePair 创建复杂的 JSON

java - Apache Camel 合并来自不同路径的两个文件

linux - 查找文本文件的编码

python - 将 xml 节点和子节点复制到新的 xml 文件

Java 正则表达式负前瞻

java - java中图形不绘制图像

java - 无法将主类与 Netbeans 中的其他类连接

java - 绕其轴旋转三角形

java - 在android中比较两个文件