我有一個包含JList的面板。 當我將這個面板添加到西部BorderLayout與一個元素一切都OK,我看到它的一個元素,但如果我添加新元素或清除所有元素,我看不到任何效果。爲什麼JList不顯示新添加的元素?
任何機構能提出任何解決方案嗎?
到FtpPanel將被添加含有的JList
public class FtpPanel extends JPanel{
public JList ftpJList;
public DefaultListModel ftpListModel;
public FtpPanel(String[] list) {
this.setLayout(new BorderLayout());
this.setBorder(new EmptyBorder(20, 20, 20, 20));
this.ftpListModel = new DefaultListModel();
for(String s : list){
this.ftpListModel.addElement(s);
}
this.ftpJList = new JList(ftpListModel);
final JScrollPane wsp = new JScrollPane(this.ftpJList);
wsp.setBorder(new TitledBorder(new WebBorder(),"ftpsrv.itra.de"));
this.add(wsp, BorderLayout.CENTER);
}
}
FtpTabPanel JPanel類
public class FtpTabPanel extends JPanel{
public FtpPanel ftpPanel;
public FtpTabPanel() {
createComponents();
layoutComponents();
initializeComponents();
}
private void createComponents() {
ftpPanel = new FtpPanel(new String[]{"You aren't Connected"});
}
private void layoutComponents() {
setLayout(new BorderLayout());
add(ftpPanel, BorderLayout.WEST);
}
}
中添加和刪除的jList
addFileToJlist(listOfFtpFile){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
if(listOfFtpFile !=null)
ftpTabPanel.ftpPanel.ftpListModel.clear();
ftpTabPanel.ftpPanel.updateUI();
for(String s : listOfFtpFile){
ftpTabPanel.ftpPanel.ftpListModel.addElement(s);
ftpTabPanel.ftpPanel.ftpWebList.validate();
ftpTabPanel.ftpPanel.updateUI();
}
ftpTabPanel.ftpPanel.ftpWebList.revalidate();
panel.updateUI();
}
});
}
*「似乎問題在別的地方」* OP - 爲了更好地幫助您,請發佈[SSCCE](http://sscce.org/)。 – 2012-04-27 11:30:45