从实体类填充 gui 类的 jlist

Posted

技术标签:

【中文标题】从实体类填充 gui 类的 jlist【英文标题】:populate jlist at gui class from entity class 【发布时间】:2013-10-20 18:19:59 【问题描述】:

我知道这是一个常见的问题,因为到处都有视频,但它们让我更接近目标,但没有达到目标。

根据推荐的做法,我已将文件打包成: - 边界(GUI 类) - 实体(getter、setter、populateJList()) - 数据库(数据库访问对象)

我希望通过以下方法@Entity 填充位于@boundary 的JList。我该如何明确地这样做?

    public void populateJList()
    
        DefaultListModel m = new DefaultListModel();

    ResultSet rs = null;
    DataAccessObject db = new DataAccessObject();
    db.setUp("customer");

    String dbQuery = "SELECT food_Category FROM store_owner";       
    rs = db.readRequest(dbQuery);

    try
    
        while (rs.next())
        
            food_Category = rs.getString("food_Category");

            m.addElement(food_Category);
               
    
    catch (Exception e)
    
        e.printStackTrace();
    
    db.terminate();
    //return success;

【问题讨论】:

【参考方案1】:

我希望通过以下方法填充位于@boundary 的 JList

然后您需要更改方法签名以返回 ListModel。比如:

public ListModel populateJList()

    DefaultListMoodel model = new DefaultListModel();

    ...

    return model;

现在,当您调用该方法时,您的代码将类似于:

JList list = new JList( populateModel() );

【讨论】:

谢谢。所以如果我的类@实体被命名为“食物”,我将执行以下操作: Food food = new Food(); JList list = new JList(food.populateJList()); 另外,我试图做一个 println @ populateModel() 但它没有成功。所以我继续尝试您的建议,显示的所有 jlist 都是 []。这是否意味着我的 DAO 不正确? 我没用过DAO,所以不知道它是怎么工作的。通常,如果查询没有返回任何行,则 DefaultListModel 将只是空的,因为没有添加任何内容。如果您看到“[]”,则查询似乎正在返回该值。您需要做的就是在一个 println(...) 语句到 while 循环中查看正在返回的数据。

以上是关于从实体类填充 gui 类的 jlist的主要内容,如果未能解决你的问题,请参考以下文章

从0到1打造代码生成器数据库表生成Java实体类

实体类禁止填充数据库

C# 中多个实体类的问题

从不同核心数据实体获取数据并将结果转换为相应类的通用方法

java去掉实体类的空属性

实体类的理解