当 JList
位于 ActionListener
内时,我无法在 JScrollPane
中显示它。我有另一个列表,可以在另一个滚动 Pane 中毫无问题地打印,但在操作监听器中则不然。
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,但从未将滚动 Pane 添加到框架中。
不要创建新的 JScrollPane。
相反,您只需更新现有scrollPane的视口(viewport):
//listaTabeleScrollPane = new javax.swing.JScrollPane(listaTabele);
listaTabeleScrollPane.setViewportView( listaTabele );
或者另一个选项是只更新 JList 的 ListModel:
listaTabele.setModel( w );
所以现在不需要创建新的 JList 或重置滚动面板的视口(viewport)。
关于java - 无法显示 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37512551/