2012-12-12 138 views
0

我已經在我的表單JList組件中,並且我希望用戶從JList中選擇項目以在項目名稱的現有JLayeredPanel上添加新面板。還有就是我的面板:動態添加面板

package forme; 

/** 
* 
* @author Administrator 
*/ 

public class PanelProcesses extends javax.swing.JPanel { 

    /** 
* Creates new form PanelProcesses 
*/ 
public PanelProcesses() { 
    initComponents(); 
} 

PanelProcesses(String name) { 
    initComponents(); 
    jlbProcess.setText(name); 
}      
} 

而且有方法主要形式時JList上項目的用戶點擊:

private void jlProcessesMouseClicked(java.awt.event.MouseEvent evt) { 

    Process p = (Process) jlProcesses.getSelectedValue(); 
    System.out.println(p.getName()); 
    PanelProcesses pp = new PanelProcesses(p.getName()); 
    pp.setOpaque(true); 
    // pp.setVisible(true); 
    jlpProcesses.add(pp); 
    jlpProcesses.repaint(); 
    jlpProcesses.setVisible(true); 
    //this.setVisible(true); 

} 

問題是,當我點擊項目面板上沒有連接到JLayeredPanel(jlpProcesses) 。有人知道我犯錯的地方嗎?通過調試模式,我看到新實例操作PanelProcess被創建,屬性可見爲真。

謝謝。 :)

+1

使用jlpProcesses.revalidate() –

+0

具有變量名稱的JList jlProcess – bralek

+2

1)爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。 2)'SwingX'在哪裏? –

回答

0

我解決了這個問題,設置BoxLayout,然後Java自動將新面板放在其他人下面。