Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新面板_Java_Panel - Fatal编程技术网

Java 更新面板

Java 更新面板,java,panel,Java,Panel,我的框架上有一个面板。通过点击一个按钮,我想删除旧面板,创建另一个面板,并将该面板添加到我的框架中。我还使用netbeans 您能帮我一下吗?我该怎么做?谢谢您这样做: JFrame frame = new JFrame(); final JPanel origPanel = new JPanel(); frame.add(origPanel, BorderLayout.CENTER); MouseListener ml = new MouseAdapter() { public void

我的框架上有一个面板。通过点击一个按钮,我想删除旧面板,创建另一个面板,并将该面板添加到我的框架中。我还使用netbeans 您能帮我一下吗?我该怎么做?谢谢您这样做:

JFrame frame = new JFrame();
final JPanel origPanel = new JPanel();
frame.add(origPanel, BorderLayout.CENTER);

MouseListener ml = new MouseAdapter() {
  public void mouseClicked(MouseEvent evt) {
    // Mouse clicked on panel so remove existing panel and add a new one.
    frame.remove(origPanel);
    frame.add(createNewPanel(), BorderLayout.CENTER);

    // Revalidate frame to cause it to layout the new panel correctly.
    frame.revalidate();

    // Stop listening to origPanel (prevent dangling reference).
    origPanel.removeMouseListener(this);
  }
}

origPanel.addMouseListener(ml);
    final JFrame frame = new JFrame();
    frame.setSize(200, 200);

    final JPanel panelA = new JPanel();
    final JPanel panelB = new JPanel();
    JButton button = new JButton("Switch");
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            frame.remove(panelA);
            frame.add(panelB);
            frame.show();
        }
    });
    JLabel label = new JLabel("This is panel B. Panel A is gone!");
    panelB.add(label);
    panelA.add(button);
    frame.add(panelB);
    frame.add(panelA);
    frame.show();

谢谢你最好接受亚当斯基的回答,他似乎非常渴望10公里的积分?因为他是唯一一个继续提供帮助的人,尽管从你上次费心接受答案到现在已经有15条帖子了。顺便说一句,发布的代码不会起作用,但希望您至少能从介绍的概念中学习,并自己解决问题。你也可以阅读很多次提到的教程。为什么代码不起作用?对不起,我应该说代码不会编译概念是好的,我知道OP会尝试逐字复制,而不去努力理解代码在做什么。谢谢,我在我的框架中编写了你的代码,我用它代替框架,这是正确的吗??我也不能写这个。重新验证。请帮助我,谢谢。我知道你会回来填鸭式地试图修复你的编译错误。你不能自己思考吗?你不知道如何使用API来查找有效的方法和它们应用的对象吗?当人们忽视你时,我能用重新绘制替换重新验证吗?几个月来你一直无视我的建议。你还没有发布你的SSCCE来显示你在做什么。我可能会给你一个解决方案,告诉你这是你问题的两个字符的解决方案。但我不会那么慷慨,除非你学会如何恰当地提问,这意味着在每个问题中都包含一个SSCCE,并使用论坛,这意味着在给出答案时接受答案。