【问题标题】:How To Display Objects in Java JList?如何在 Java JList 中显示对象?
【发布时间】:2016-10-02 11:49:56
【问题描述】:

我正在尝试创建一个学生注册系统。在这个系统中,学生可以通过点击“课程”按钮查看课程名称、课程学分和课程讲师。为此,我有一个 Courses 类、一个数据库、一个框架和一个 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 总是看起来像 p1.Courses@4532 当我不小心尝试使用 System.out.println() 打印对象时,我遇到了类似的问题。但在这种情况下,我将数组列表转换为数组,并且我的 JList 包含对象(JList)。所以如果你帮助我,我会很高兴。

【问题讨论】:

  • “如果你能帮助我,我会很高兴”。好的,你的问题到底是什么????

标签: java swing arraylist desktop-application


【解决方案1】:

您需要在 Course 类中重写 toString(),以便它返回您要显示的课程的名称。

看看这个例子:

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;
    }
}

这将显示以下内容:

【讨论】:

  • @Mert,不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2019-04-14
  • 2011-10-16
  • 1970-01-01
相关资源
最近更新 更多