gpt4 book ai didi

java - 单击按钮后更改框架的内容 Pane

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:01:41 28 4
gpt4 key购买 nike

我希望能够在单击某个框架的 JPanel 内的按钮后设置 JFrame 的内容 Pane 。

我的架构由一个创建 JFrame 的 Controller 和其中的第一个 JPanel 组成。在第一个 JPanel 中,我在 Controller 上调用一个方法:setcontentpane(JPanel jpanel)。但是,它没有加载传递的 JPanel,而是删除所有面板(请参见下面的代码)

第一个 JPanel 中的 ActionListener:

public void actionPerformed(ActionEvent arg0) {
controller.setpanel(new CustomPanel(string1, string2));
}

Controller :

JFrame frame;

public void setpanel(JPanel panel)
{
frame.getContentPane().removeAll();
frame.getContentPane().add(panel);
frame.repaint();
}

public Controller(JFrame frame)
{
this.frame=frame;
}

谁能告诉我我做错了什么?谢谢:)

最佳答案

调用重新验证,然后重新绘制。这告诉布局管理器对其组件进行布局:

JPanel contentPane = (JPanel) frame.getContentPane();

contentPane.removeAll();
contentPane.add(panel);
contentPane.revalidate();
contentPane.repaint();

不过,如果您只是想交换 JPanel,则更好的方法是使用 CardLayout 并让它完成肮脏的工作。

关于java - 单击按钮后更改框架的内容 Pane ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010915/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com