首页
学习
活动
专区
圈层
工具
发布

显示JList
EN

Stack Overflow用户
提问于 2012-08-28 05:16:22
回答 2查看 1.8K关注 0票数 2

在显示mysql数据库中的数据时,我再一次遇到了JList的问题,我使用了下面给出的代码,但是它没有在屏幕上显示任何东西。

代码语言:javascript
复制
JFrame f8 = new JFrame("Schedule");
f8.setVisible(true);
f8.setSize(1000, 1000);
JPanel jpa1 = new JPanel(new GridBagLayout());

String query = "SELECT * FROM Location";
DefaultListModel model = new DefaultListModel();
DefaultListModel model1 = new DefaultListModel();
try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Statement stmt = null;
    ResultSet rs;
    Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/SPL", "root", "PWD");
    stmt = (Statement) conn.createStatement();
    rs = stmt.executeQuery(query);
    while (rs.next()) {
        String stadium = rs.getString("Stadium");
        String city = rs.getString("City");
        model.addElement(stadium);
        model1.addElement(city);
    }
    JList list = new JList(model);
    JList list1 = new JList(model1);
    f8.add(jpa1);
    jpa1.add(list);
    list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
    list.setVisibleRowCount(1);
    JScrollPane listScroller = new JScrollPane(list);
} catch (SQLException e) {
    System.out.println("Message   : " + e.getMessage());
}

你能告诉我我哪里错了吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-28 05:21:36

根据代码片段很难说出问题是什么,更不用说一些难以阅读的未格式化的代码了,但是...

  • 您将一个列表添加到JPanel中,然后将相同的列表添加到JScrollPane中,并使用GridBagLayout忽略该JScrollPane.
  • You're,而没有任何GridBagConstraints
  • You're在Swing事件线程上执行大量可能会锁定此线程的JDBC代码。
    • 您创建了一个JList list1,但不将其添加到任何内容中。

您应该考虑:

  • 在图形用户界面外测试数据库代码。分解问题来克服它,否则你会有太多的变量影响你的结果,使得你很难知道是什么导致了你的代码中的what.
  • placing调试语句,或者使用调试器首先找出错误在哪里。
  • 在请求志愿者帮助时只发布格式良好的代码。理解别人的代码已经够难的了,你应该努力不让它变得更难。我们非常感谢您的努力!
票数 7
EN

Stack Overflow用户

发布于 2012-08-28 05:33:58

装满电鱼的气垫船几乎击中了钉子,但我原谅他,因为直到我开始删除你的代码的整个部分,我才看到它。

代码的最后一行是

代码语言:javascript
复制
JScrollPane listScroller = new JScrollPane(list);

您从不将此滚动窗格添加到您的UI中。它的作用是将list从它以前的父级(jpa1)中删除,并添加到滚动窗格中,这样就不会在屏幕上显示任何内容。

我会遵循Hovercraft上所有关于Eels的建议,然后找出如何解决最后一个问题……

代码语言:javascript
复制
jpa1.add(new JScrollPane(list));

应该就这么做了

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12149723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档