好的,所以我想通过按下按钮(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!");
}
}
}
答案 0 :(得分:0)
actionListener类CalButton
每次都创建一个新的Record
对象,并且有空白的电话号码。尝试传递一个Record
对象,其中包含一些值,它应该可以工作。