gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:38 26 4
gpt4 key购买 nike

好的,所以我想通过按按钮(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com