【问题标题】:pass JTextField from class to ArrayList class将 JTextField 从类传递到 ArrayList 类
【发布时间】:2015-01-14 15:32:32
【问题描述】:

我正在尝试通过按下按钮(动作侦听器)将 JTextField 中的值从我的 GUI(主)类传递到另一个类中的 ArrayList。

我尝试了一些方法,但无法真正解决。

这是我的 GUI 类,带有我要传递的文本字段:

private JButton button1;
private JTextField textfield9;

button1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) 
        {
            // here I want it to be added into the Arraylist after button click
        }
});

这是我在另一个类中使用 ArrayList 的内容:

ArrayList<String> list;
public Administratie()
{
    list = new ArrayList<String>();
}

public void addToArray(String s)
{
    list.add(s);
}

我认为不需要发布除此之外的任何其他代码。如果您需要更多或全部,请告诉我。 谁能帮我解决这个问题?

【问题讨论】:

    标签: java arraylist jframe jpanel jtextfield


    【解决方案1】:

    您将textfield9.getText() 的值传递给Administratie#addToArray()

    这是一个简单的演示:

    gui.java

    import javax.swing.*;
    
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.event.*;
    import java.util.List;
    public class gui extends JFrame{
    private JButton button1;
    private JTextField textfield9;
    private JTextArea result;
    public int i=0;
    
    public class1(){
    
       super("");
    setLayout(new FlowLayout());
    
       button1 = new JButton("button1");
       textfield9 = new JTextField(10);
       result = new JTextArea(30,30);
    
    
       Administratie administratie = new Administratie();
    
       button1.addActionListener(new ActionListener() {
        String temResult ="";
           public void actionPerformed(ActionEvent evt) 
           {
               // pass the value to Administratie 
               administratie.addToArray(textfield9.getText());
    
               // get the value from Administratie 
                temResult += administratie.getList().get(i++)+"\n";
                result.setText(temResult);
    
           }
    });
    
    
    add(textfield9,BorderLayout.CENTER);
    add(button1,BorderLayout.WEST);
    add(new JScrollPane(result), BorderLayout.SOUTH);
    
    setVisible(true);
    setSize(400,400);
    }
    
    
    public static void main(String[] args) {
       new gui();
    } 
    }
    

    Administratie.java

    import java.util.*;
    
    public class Administratie{
    ArrayList<String> list;
    public Administratie()
    {
        list = new ArrayList<String>();
    }
    
    public void addToArray(String s)
    {
        list.add(s);
    }
    
    public List<String> getList(){
        return this.list;
    }
      }
    

    【讨论】:

    • @Fe 谢谢你的回答,它可以工作,但是它在 [] 之间显示它们,我不能用 \n 让它们相互对齐。而且我不太明白为什么你需要一个 i++ 那里|?
    • @user3688895,看看我在上面的 gui 类上的更新,让你更好地理解它:D,我将结果与 ("\n") 连接起来,而 i++ 它只是,将其视为列表的索引,以访问列表的元素(这是您传递给列表的值)
    猜你喜欢
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多