我有两个类:一个叫Student
,另一个叫Course
。我想对一个简单的注册系统进行模拟。
我的Student
班级部分有以下形式:
class Student
{
private String id,
private Course[] listOfCourses;
private int numCourse;
//accesing methods
public registration(Course course){
listOfCourses[numCourse]=course;
numCourse++;
}
public Course[] getCourse(){
return listOfCourses;
}
}
并且Course
类具有以下形式:
class Course
{
String id, String courseName;
//constructor
//accesing methods
}
我希望通过在Java Swing中制作的形式按下按钮,将一个特定学生注册的课程内容显示为jTable。我尝试了以下内容,但根本没有结果:
Student e=new Student();
Course d[]=new Course[4];
d=e.getCourses(); //to receive the array of Courses from the Student class
for (int i=0;i<d.length;i++){
jTable2.setValueAt(estLista[i].getName(), i, 0);
}
我怎么能这样做?我的意思是有一种方法可以将存储在Course
类中的数组内容放入按钮的ActionEvent
中?
答案 0 :(得分:1)
从您提供的代码中我相信至少有一个原因导致您没有获得课程..因为它没有在注册过程中设置:)(除非您有注册类,否则语法不正确?)可能不是一个完整的解决方案,但它纠正了一个问题
public void registration(Course course){
// listOfCourses[numCourse];
listOfCourses[numCourse]=course;
numCourse++;
}
答案 1 :(得分:0)
好吧,对我来说还不太清楚,但我会提供一些代码并告诉我它是否对你有帮助。
注意:未经过测试
对于学生(抱歉,我更喜欢使用列表而不是数组):
public class Student {
private String id;
private List<Course> takenCourses;
public void registration(Course course){
if (this.takenCourses != null) {
takenCourses.add(course);
} else {
System.err.println("an array has not been specified.");
}
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<Course> getTakenCourses() {
return takenCourses;
}
public void setTakenCourses(List<Course> takenCourses) {
this.takenCourses = takenCourses;
}
当然:
public class Course {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
对于你的UI,我刚创建了一个UI的“模拟”,我假设你已经实现了更完整的东西...我假设你已经将组件作为框架或面板的全局变量初始化,或者至少你有方法得到他们。
public class UIHelper extends JFrame {
Student student = new Student();
JButton btnAction;
JTable myTable;
public UIHelper() {
//Methods for creating UI
//.
//.
//.
student.setId("stackoverflowed");
student.setTakenCourses(new ArrayList<Course>());
btnAction = new JButton("Action!");
//Methods of the JButton (...)
btnAction.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Now just process since student is a global variable (you can set it static as well) but it shouldn't be a good practice at all
for (Course course : student.getTakenCourses()) {
System.out.println(course.getName());
//Add the element to your table.
}
}
});
}
public static void main(String[] args) {
//Assume this is your UI
new UIHelper();
}
希望我给你一个想法,最好的问候。