2016-06-02 3 views
-4

Я пытаюсь создать систему регистрации учащихся. В этой системе студенты могут увидеть название курса, курс обучения и инструктора курса, нажав кнопку «Курсы». Для этого у меня есть курс Курса, база данных, кадр и список курсов JList.Как отображать объекты в Java JList?

ArrayList<Courses> aq = Database.allCourses(); 

//allCourses() is a static method in my Database class that returns fields from my Database as an ArrayList<Courses> 

courselist.setListData(Driver.converToCoursesArray(aq)); 

//Driver.converttoCoursesArray() is a static method in my Driver class that takes a ArrayList<Courses> as a paramater and returns a Courses[] array. 

Теперь моя проблема заключается в том, что в моем кадре, JList всегда видел, как [email protected] я видел подобную проблему, когда я был случайно пытаюсь напечатать объект с System.out.println (). Но в этой ситуации я преобразовываю arraylist в массив, а мой JList содержит объекты (JList). Поэтому я буду счастлив, если вы поможете мне.

+0

"Так я буду счастлив, если бы вы мне помочь". Хорошо, что именно ваша проблема ???? – rmlan

ответ

2

Вам необходимо переопределить toString() в классе Course, чтобы он возвращал имя курса, который вы хотите отобразить.

Взгляните на этот пример:

import javax.swing.*; 
import java.awt.*; 

public final class Example extends JFrame { 

    public Example() { 

     Course[] courses = { 
       new Course("Course 1"), 
       new Course("Course 2"), 
       new Course("Course 3") 
     }; 

     JList<Course> courseJList = new JList<>(courses); 

     getContentPane().add(courseJList); 

     pack(); 
     setMinimumSize(new Dimension(200, 200)); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     new Example(); 
    } 
} 

final class Course { 

    private final String courseName; 

    public Course(final String courseName) { 
     this.courseName = courseName; 
    } 

    @Override 
    public String toString() { 
     return courseName; 
    } 
} 

Это будет выглядеть следующим образом:

enter image description here

+0

Спасибо за ваш ответ. Он работал – Mert

+0

@Mert, не забудьте «принять» ответ, нажав на галочку, чтобы люди знали, что проблема решена. – camickr

+0

Спасибо за напоминание – Mert