私は自分のフォーム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 になっていることがわかります。