java - 使用按钮将 arraylist 元素添加到文本字段

标签 java arraylist applet jbutton textfield

好的,所以我想通过按按钮(Gui 中的 getRecord)将 arraylist(clean 类中的行)的元素添加到 textfield(GUI 中的 tx1),但我做不到,而且我无法弄清楚,如果您能帮助我完成此任务,我将不胜感激。

这是我的 Gui 代码:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.applet.*;
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;

public class UpdateEmp extends Applet  {

private TextField tx1, tx2, tx3, tx4, textArea;
private Button getRecord, update, display;  

public void init (){
    setSize(1000,600);
    setBackground(new Color(220,220,250));

    tx1 = new TextField();
    add(tx1);

    tx2 = new TextField();
    add(tx2);

    tx3 = new TextField();
    add(tx3);

    tx4 = new TextField();
    add(tx4);

    getRecord = new Button("Get Record");
    getRecord.addActionListener(new CalButton());
    add(getRecord);

    update = new Button("Update");
    add(update);

    display = new Button("Display All Records");
    add(display);

    textArea = new TextField();
    add(textArea);  

}
    public void paint (Graphics g){

        g.drawString("Update Program", 450, 20);
        g.drawString("Employee Identification", 0, 55);
        g.drawString("Telephone Number", 0, 105);
        g.drawString("Employee Name", 0, 155);
        g.drawString("Years of Work", 0, 205);

        tx1.setBounds(500, 30, 500, 50);
        tx2.setBounds(500, 80, 500, 50);
        tx3.setBounds(500, 130, 500, 50);
        tx4.setBounds(500, 180, 500, 50);

        getRecord.setBounds(0, 230, 500, 50);
        update.setBounds(500, 230, 500, 50);
        display.setBounds(0, 280, 500, 50);
        textArea.setBounds(0, 330, 1000, 270);

    }

    private class CalButton implements ActionListener{

        public void actionPerformed(ActionEvent e){

            if (e.getSource() == getRecord){
                Record record = new Record();                   
                tx1.setText(record.getTelephone());
            }
        }
    }
}

这是Record类:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Record {
private int empId;
private String telephone;
private String name;
private int years_of_Work;


public Record() {
    empId = 0;
    telephone = null;
    name = null;
    years_of_Work = 0;
}

public Record(int e, String t, String n, int y) {
    empId = e;
    telephone = t;
    name = n;
    years_of_Work = y;
}

public void setEmpId(int e) {
    empId = e;
}

public void setName(String n) {
    name = n;
}

public void setTelephone(String t) {
    telephone = t;
}

public void setYears(int y) {
    years_of_Work = y;
}

public int getEmpId() {
    return empId;
}

public String getName() {
    return name;
}

public String getTelephone() {
    return telephone;
}

public int getYears() {

    return years_of_Work;
}

public String toString() {
    return name + " phone=" + telephone + " years of work=" + years_of_Work             + "\n";
}   
    }

最后这是读取文件的代码(我将文件的值存储到数组中):

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class clean {
    private static final String String = null;
    private List<Record> lines = new ArrayList<Record>();
    private String telephone;

    public clean(){
    try{
    File f = new File ("C:\\Assignment\\Emp.txt");
    Scanner scan = new Scanner (f);

    List<Record> lines = new ArrayList<Record>();

        while (scan.hasNextLine()){
              String line = scan.nextLine();
                String[] list = line.split(" ");
                int empId = Integer.parseInt(list[0]);
                String telephone = list[1];

                String name = list[2];
                int years_of_Work = Integer.parseInt(list[3]);

                Record rec = new Record(empId, telephone, name, years_of_Work);
                lines.add(rec);
            }

           /* for(Record rec: lines){
                System.out.println(rec.getTelephone());
           */
               }

    catch(Exception e){
        System.out.println("ERROR!");                   
    }           
}
}

最佳答案

actionListener 类 CalButton 每次都会创建一个新的 Record 对象,并且有空白电话号码。尝试传递一个包含一些值的 Record 对象,它应该可以工作。

关于java - 使用按钮将 arraylist 元素添加到文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33992904/

相关文章:

java - 如何将多对多映射为嵌套嵌入对象

java - 为什么我们 addAll(Collection) 而不是 Iterable?

java - 异步使用 Java applet

java - 在 Java 中解压缩巨大的 gz 文件和性能

java - 如果我使用 JTable,setLookAndFeel() 会给出 NullPointerException

java - 将 Object 转换为 ArrayList<String[]> 时为 "Warning: [unchecked] unchecked cast"

android - 当我不知道 key 时如何从 sharedpreference 中获取值

java - 在服务器上的 Applet 中使用 OutputFileStream ("test.abc")正在浏览器的文件夹中创建一个新文件

java - 如何在小程序中使用 Rhino javascript 引擎

java - 如何从 Eclipse Build Workspace 跳过 Maven 插件执行