1

学生の登録システムに問題があります。ArrayListからオブジェクトを選択して、 からオブジェクトを削除しようとしていますJComboBox

public class Course {

 public List<Student> Students;
 public List<Module> Modules;

    public Course()
    {
         Students = new ArrayList<Student>();
         Modules = new ArrayList<Module>();
    }

public class Del_Student extends JFrame
{

  private Course newCourse;
    public Del_Student(Course aCourse)
    {
        newCourse = aCourse;
        JButton btnDel = new JButton("Delete");
        JButton btnCancel = new JButton("Cancel");
        JComboBox studentsBox = new JComboBox();
        studentsBox.setPreferredSize(new Dimension(185,25));

    for(int i=0; i<newCourse.Students.size();i++ )
    {
        String p = newCourse.Students.get(i).getFirstName();
        studentsBox.addItem(p);
    }

      btnDel.addActionListener
    (
        new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                newCourse.Students.remove(studentsBox.getSelectedItem());
            }
        }
    );

に表示するオブジェクトから文字列を追加したJComboBoxので、そのアイテム (学生名で表示) を選択してから、選択したアイテムを削除します。

4

1 に答える 1

2

同様の問題を抱えている他の人を助けるために、次のことを行って解決策を解決しました。

    btnDel.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            for (int i = 0; i < newCourse.Students.size(); i++) {
                if (newCourse.Students.get(i).getFirstName().equals(studentsBox.getSelectedItem()
                        .toString())) {
                    newCourse.Students.remove(i);
                    JOptionPane.showMessageDialog(null, "Student Deleted");
                    studentsBox.removeAllItems();
                    for (int t = 0; t < newCourse.Students.size(); t++) {
                        String p = newCourse.Students.get(t).getFirstName();
                        studentsBox.addItem(p);
                    }
                }
            }
        }
    });
于 2013-03-13T10:52:27.670 に答える