当它位于JList内时,我无法在JScrollPane中显示ActionListener。我还有另一个列表,它可以在另一个滚动窗格中正常打印,但在动作监听器中却没有。

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

        }
      });

最佳答案

listaTabeleScrollPane = new javax.swing.JScrollPane(listaTabele);


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

不要创建新的JScrollPane。

相反,您只需更新现有scrollPane的视口即可:

//listaTabeleScrollPane = new javax.swing.JScrollPane(listaTabele);
listaTabeleScrollPane.setViewportView( listaTabele );


或者另一个选择是只更新JList的ListModel:

listaTabele.setModel( w );


因此,现在无需创建新的JList或重置滚动面板的视口。

09-30 16:54