【问题标题】:How i can repaint my JList after press a item?按下一个项目后如何重新绘制我的 JList?
【发布时间】:2014-11-04 14:17:08
【问题描述】:

我的问题是,双击 List-Item 后如何重新绘制 JList? 请帮助我,我是 Java 新手,这是我的第一个 Java 程序。

这里我的 JList 被剪断了:

mday 和 mtime 来自带有 JList 字符串的数据库

    liste = new JList(mday);
    System.out.println(mday);
    list.frame.add(liste, BorderLayout.CENTER);
    list.frame.validate();
    list.frame.repaint();
    liste.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent evt) {
            liste0 = (JList) evt.getSource();
            if (evt.getClickCount() == 2) {
                int index = liste0.locationToIndex(evt.getPoint());
                index = index + 1;
                System.out.println(index);
                try {
                    c = DriverManager.getConnection(DB_PATH);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                System.out.println("Opened database successfully");
                try {
                    stmt = c.createStatement();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                String sql = "SELECT * from playscr WHERE _id LIKE " + index;
                try {
                    rs = stmt.executeQuery(sql);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                DefaultListModel<String> mtime = new DefaultListModel<String>();
                try {
                    while(rs.next()){
                        String name = "";
                        String zeit = rs.getString("zeit");
                        String daten = "";
                        GetData data = new GetData(name, zeit, daten);
                        mtime.addElement(data.toString());
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                liste = new JList(mtime);
                System.out.println(mtime);
                list.frame.revalidate();
                list.frame.repaint();
                list.frame.add(liste, BorderLayout.CENTER);             
            }
        }
    });

【问题讨论】:

    标签: java swing jlist mouselistener


    【解决方案1】:

    您无需重新创建JList,只需使用默认模型创建列表。 JList&lt;String&gt; list = new JList&lt;String&gt;(new DefaultListModel&lt;String&gt;());

    然后在鼠标监听器中从模型中删除项目:((DefaultListModel&lt;String&gt;)list.getModel()).removeAllElements(); 并添加新项目 ((DefaultListModel&lt;String&gt;)list.getModel()).addElement("test");

    阅读JList tutorial

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      相关资源
      最近更新 更多