我的格式为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
已生成且属性可见为真。
答案 0 :(得分:0)
我通过设置BoxLayout解决了这个问题,然后Java自动将新面板放在其他面板之下。