Java 无法显示JList

Java 无法显示JList,java,swing,actionlistener,jscrollpane,jlist,Java,Swing,Actionlistener,Jscrollpane,Jlist,当JScrollPane位于ActionListener中时,我无法在JScrollPane中显示JList。我有另一个列表,它在另一个滚动窗格中打印时没有问题,但在活动侦听器中没有 btnSelecteazaBd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String t = new String();

JScrollPane
位于
ActionListener
中时,我无法在
JScrollPane
中显示
JList
。我有另一个列表,它在另一个滚动窗格中打印时没有问题,但在活动侦听器中没有

    btnSelecteazaBd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          String t = new String();
          t = list.getSelectedValue().toString();

          try {                                                    
                w = cautaTabele(t);
          } catch (SQLException ex) {
                Logger.getLogger(Conexiune.class.getName()).log(Level.SEVERE, null, ex);
          }                        
            listaTabele = new JList(w);    
            listaTabeleScrollPane = new javax.swing.JScrollPane(listaTabele);

        }
      });
您创建了一个新的JScrollPane,但从未将滚动窗格添加到框架中

不要创建新的JScrollPane

您只需更新现有滚动窗格的视口:

//listaTabeleScrollPane = new javax.swing.JScrollPane(listaTabele);
listaTabeleScrollPane.setViewportView( listaTabele );
或者,另一个选项是只更新JList的ListModel:

listaTabele.setModel( w );
因此,现在无需创建新的JList或重置scrollpanel的视口

您创建了一个新的JScrollPane,但从未将滚动窗格添加到框架中

不要创建新的JScrollPane

您只需更新现有滚动窗格的视口:

//listaTabeleScrollPane = new javax.swing.JScrollPane(listaTabele);
listaTabeleScrollPane.setViewportView( listaTabele );
或者,另一个选项是只更新JList的ListModel:

listaTabele.setModel( w );

因此,现在无需创建新的JList或重置scrollpanel的视口

为什么不在启动时将列表添加到滚动窗格中&只需在需要时将项目添加到模型中?如果这不适用于此场景,请使用中所示的。为什么不在启动时将列表添加到滚动窗格中,并在需要时将项目添加到模型中?如果这不适用于此场景,请使用中所示的。