0

ここであいまいな場合は申し訳ありませんが、皆さんのためにコードを投稿します。私は初心者なので、気楽にやってください。

私にはstudentというクラスがあり、intidと別の文字列名があります。GUI用に別のクラスを作成しました。ポップアップするウィンドウがあり、IDのフィールドがあります。IDを入力し、そのIDから名前を取得したいと思います。私はこれについて行くつもりはなく、私は何時間も立ち往生しています。追いつくのが遅いので、誰か助けてもらえますか?私は相続があまり得意ではありません。(また、他に2つのクラスがありますが、ここでは役に立たないと思います。

学生クラス

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

編集:データが含まれている私のテストプログラムであるクラスがさらに2つあります。

4

1 に答える 1

0

学生をハッシュマップまたはツリーマップに保存してから、それらを検索できます

すなわち

HashMap<Integer,Student> studentMap = new HashMap<>();

studentMap.put(matt.getId(), matt);

.....

Student s = studentMap.get(lookupId);  /* Retrieve based on Student id*/
于 2013-03-23T02:02:24.210 に答える