gpt4 book ai didi

java - 从 JPanel 内的 JButton 而非 JFrame 替换当前 JPanel

转载 作者:行者123 更新时间:2023-12-02 07:34:50 27 4
gpt4 key购买 nike

我有一个 JFrame,我将其用作主要 JFrame,并在同一 JFrame 内更改 JPanel。第一个 JPanel 已经位于 JFrame 内部,因此我可以将其替换为“this.removeall() then ,this.setContentPane(new JPanel2)”,因为这里的“this”调用 JFrame 本身。

在另一个 JPanel 中,我想制作一个 JButton 以用另一个 JPanel 替换当前的 JPanel。问题是我之前无法执行相同的代码,因为这里的“this”调用的是 JPanel 而不是 JFrame。

问题是如何在 JPanel 内编写代码,让 JFrame 更改其“setContentPane”以查看第二个面板?

<小时/>

我在使用 CardLayout 中找到了答案..这个视频帮助我解决了问题

CardLayout on Netbeans video

最佳答案

I want to write the code in the buttonActionListner in the JPanel. I will not write that code in the JFrame, so every JPanel can be added and removed to call another one independently

@AndrewThompson-In the design of the interface we used buttons not CardLayout or Tabs. I wanted to make all the application Panels and change them one by one in one JFrame

必须调用父级(JFrameJPanel),

validate(); // for Java7 revalidate() for JFrame
repaint();

删除后添加一个新的JPanel,仅一次并作为最后一个代码行

正如@AndrewThompson提到的更好、最简单和最简单的方法可能是使用CardLayout

关于java - 从 JPanel 内的 JButton 而非 JFrame 替换当前 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12399800/

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