动态添加面板

时间:2012-12-12 09:50:34

标签: java jpanel swingx

我的格式为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)。有人知道我弄错了吗?通过调试模式,我看到新的实例op PanelProcess已生成且属性可见为真。

1 个答案:

答案 0 :(得分:0)

我通过设置BoxLayout解决了这个问题,然后Java自动将新面板放在其他面板之下。