此项目的目标是创建两个班级:学生班级和GUI班级。学生类包含姓名,地址,余额和专业。我有学生和GUI类都创建我的问题是数组和循环。我需要让Student类数组和相关的计数器变量成为一个静态变量,并且每当用户输入Student类(名称,地址,平衡,主要)的信息时,它都会向JTextArea添加另一个Student对象。本质上,每次按下JButton时,JTextArea都会更新新学生的信息而不删除旧信息。任何帮助,使这项工作将不胜感激!设计并实施能够不断接受输入并创建多个学生对象的“学生”班
我的代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Student {
private String name;
private String address;
private String balance;
private String major;
// Constructs fields
public Student(String name, String address, String balance, String major) {
this.name = name;
this.address = address;
this.balance = balance;
this.major = major;
}
public String setName(String Name) {
this.name = name;
return name;
}
public String setAddress(String address) {
this.address = address;
return address;
}
public String setBalance(String balance) {
this.balance = balance;
return balance;
}
public String setMajor(String major) {
this.major = major;
return major;
}
public String toString() {
return ("Name: " + this.name + " Address: " + this.address
+ " Balance: " + this.balance + " Major: " + this.major);
}
}
public class SecondAssignment extends JFrame implements ActionListener {
public SecondAssignment() {
setLayout(new GridLayout(6, 1, 1, 1));
// Creates TextField, TextArea, and button components
name = new JTextField();
address = new JTextField();
balance = new JTextField();
major = new JTextField();
JButton jbtSubmit = new JButton("Submit");
echoStudent = new JTextArea();
// Add TextField, TextArea, and button components to the frame
add(new JLabel("Name: "));
add(name);
add(new JLabel("Address: "));
add(address);
add(new JLabel("Balance: "));
add(balance);
add(new JLabel("Major: "));
add(major);
add(new JLabel("Submit Button: "));
add(jbtSubmit);
jbtSubmit.addActionListener(this);
add(echoStudent);
echoStudent.setEditable(false);
}
// TextFields
private JTextField name;
private JTextField address;
private JTextField balance;
private JTextField major;
// Echo TextArea
private JTextArea echoStudent;
// Listener
public void actionPerformed(ActionEvent a) {
Student student1 = new Student(name.getText(), address.getText(),
balance.getText(), major.getText());
echoStudent.setText(student1.toString());
}
public static void main(String[] args) {
SecondAssignment frame = new SecondAssignment();
frame.setTitle("Student Interface");
frame.setSize(500, 700);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
你的意思是你想每次点击提交按钮时清除表单输入文本?或者你想存储所有的学生并将其全部显示出来? – bagage
对不起,我不是很清楚。我的数组可以是一个50的静态大小,可以存储50个“学生”,而不必在按下按钮后清除JTextArea。 – Ben
为什么你需要一个大小为50的静态数组而不是像一个简单的List容器那样的动态数组? – bagage