java问题添加/删除面板onclick

标签 java swing jpanel netbeans-7

你好,

我创建了多个面板,第一个正在显示。当用户单击下一个图标时,我需要删除面板并添加一个新面板。在下面的代码中,面板引用在 Action 监听器中未被识别。我该如何解决这个问题?

    int n=0;
    for (int l=0; l < layOutPanelCount; l++) {
        layOutPanel[l] = new JPanel();
        layOutPanel[l].setLayout(null);
        layOutPanel[l].setBounds(0, 0, screenWidth, screenHeight);

        ImageIcon nextIcon = new ImageIcon("src/icons/next.png");
        JLabel nextLabel = new JLabel(nextIcon);
        nextLabel.setBounds(xPos, yPos, 48, 48);
        nextLabel.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e){
                layOutFrame.remove(layOutPanel[l]);
                layOutFrame.add(layOutPanel[l + 1]);
                //Here the problem occurs, the layOutPanel[] is not recognized.
            }
        });

        layOutPanel[l].add(nextLabel);
   }
   layOutFrame.add(layOutPanel[1]);

最佳答案

1) 在删除/添加 一个新的JComponent(s) 到您必须调用的可见容器中

revalidate();
repaint();

2) 也许你想重新布局容器,那么你也可以调用 pack()

3) 我看不到在运行时重新创建 JPanel 的原因,使用

JLabel#setIcon(myIcon)

代替

关于java问题添加/删除面板onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495347/

相关文章:

java - JOptionPane.showInputDialog自动退出

java - 如何在 mysql/hibernate/java 组合上管理动态实体

Java : a WebService asking embeded in a AsyncTask

java - 如何告知 JList cellrenderer JList 突然发生变化?

java - 向空的 JCombobox 添加水印

Java 计时器程序不会更新显示的时间

java - 在两个 JPanel 之间拖动 Jlabel 图像

java - 如何向 JTabbedPane 中的现有项目添加额外项目?

java - Bundle 返回 long 而不是 Parcelable

java - 创建 Rational Rhapsody 插件