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

标签 java swing netbeans jframe jpanel

我有一个 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/

相关文章:

java - 在java中安排电子邮件通知警报

Netbeans 中的 Java 文件

java - 为 MacOS Catalina 公证现有的 Java 应用程序

Java 8 : Filtering Map<Long, Person> 按人员状态列出 <Long>

java - 填充 JTable 时重复值

java - JComponents 与 Graphics.draw

java - 在 netbeans 中停止执行不会停止 jvm(在 mac osx 下)

linux - 如何执行命令 'appcfg rollback' ?

java - WEB-INF/classes 包含我的类,扩展名为 .class 和 .java

java - 如何在拖放过程中在 Main-JTable 上绘制 Row Header-JTable 的 Dropline?