如果我在这里含糊其辞,很抱歉,我也会为你们张贴我的代码。我是个初学者,所以对我手下留情。
我有一个名为student的类,它有一个int id和另一个字符串名。我已经为GUI创建了另一个类。它有一个弹出的窗口,并有一个id字段。我想输入ID并从ID中获取名称。我不知道该怎么做,我已经被卡住了几个小时。我理解得有点慢,有人能帮帮我吗?我不太擅长继承。(另外,我还有另外两个类,但我不认为它们在这里会有任何帮助。
学生班
public class Student {
private int id;
private String name;
private ArrayList<Course> regCourses;
public int getId() {
return id;
}
public String getName() {
return name;
}
public ArrayList<Course> getRegCourses() {
return regCourses;
}
public Student(int i, String n) {
id = i;
name = n;
regCourses = new ArrayList<Course>();
}
public String toString() {
String answer = id + " " + name + " - Registered Courses: ";
if (regCourses.size() == 0)
answer += "NONE";
else {
for (int i = 0; i < regCourses.size(); i++) {
answer += regCourses.get(i).getDepartment().getId()
+ regCourses.get(i).getCode();
if (i != regCourses.size() - 1)
answer += ", ";
}
}
return answer;
}
public void registerFor(Course c) {
if (!isRegisteredInCourse(c)) {
// Register
regCourses.add(c);
if (!c.getClassList().contains(this)) {
c.getClassList().add(this);
if (!c.getDepartment().getStudentList().contains(this))
c.getDepartment().getStudentList().add(this);
}
}
}
public boolean isRegisteredInCourse(Course c) {
return regCourses.contains(c);
}
}
这是另一个类中的搜索代码。
public class MainGUIWindow extends JFrame implements ActionListener {
JLabel studentID, studentName, currentRegCourses;
JButton search, regForCourse, withdraw;
JTextField idField, nameField;
JScrollPane courseScrollList;
public MainGUIWindow(String title) {
super(title);
//GUI STUFF
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == search) {
if (idField.getText() != null) {
int id = Integer.parseInt(idField.getText());
Student temp = null;
//CODE GOES HERE
}
}
}
public static void main(String[] args) {
new MainGUIWindow("Student Administration System").setVisible(true);
另外,如果需要的话,这些是我所有的java文件。http://www.filehosting.org/file/details/426633/JavaCode-SO.zip
编辑:还有两个类是我的测试程序,里面有数据。
发布于 2013-03-23 02:02:24
您可以将学生存储在Hashmap或treemap中,然后进行查找
i.e
HashMap<Integer,Student> studentMap = new HashMap<>();
studentMap.put(matt.getId(), matt);
.....
Student s = studentMap.get(lookupId); /* Retrieve based on Student id*/
https://stackoverflow.com/questions/15582502
复制相似问题