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,并且可见属性为真。

4

1 回答 1

0

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

于 2012-12-13T12:41:45.077 回答