0

我有两个类:一个叫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按钮中?

4

2 回答 2

1

从您提供的代码中,我相信您没有获得课程的至少一个原因..因为它没有在注册过程中设置:)(除非您有注册课程,否则语法不正确?)这可能不是一个完整的解决方案,但它纠正了一个问题

public void registration(Course course){
     // listOfCourses[numCourse];
        listOfCourses[numCourse]=course;
      numCourse++;
}
于 2013-04-25T18:39:36.157 回答
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();
    }

希望我给你一个想法,最好的问候。

于 2013-04-25T18:39:24.440 回答