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

时间:2015-11-30 06:48:01

标签: java arraylist applet jbutton textfield

好的,所以我想通过按下按钮(gui中的getRecord)将arraylist的元素(干净类中的行)添加到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!");                   
    }           
}
}

1 个答案:

答案 0 :(得分:0)

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