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) に接続されていないことです。誰かが私がどこを間違えているか知っていますか? デバッグ モードでは、新しいインスタンス opPanelProcessが作成され、属性の表示が true になっていることがわかります。

4

1 に答える 1

0

BoxLayout を設定してこの問題を解決すると、Java は自動的に新しいパネルを他のパネルの下に配置します。

于 2012-12-13T12:41:45.077 に答える