JFrame 中仅出现顶部面板
在 JFrame 中,BorderLayout 是默认内容窗格。当添加组件而不指定约束时,它们被放置在 BorderLayout 的中心部分。但是,只有一个组件可以占据该区域。
要解决此问题,请使用 BorderLayout 约束来指定每个面板的位置:
<code class="java">f.add(top, BorderLayout.PAGE_START);
f.add(mid);
f.add(bot, BorderLayout.PAGE_END);</code>
登录后复制
其他优化:
- 删除 f.setSize(500, 500);并使用 pack() 代替,因为它根据其内容设置帧大小。
- Change f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);到 f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);关闭时正确终止 GUI。
- 删除 in.setVisible(true);因为组件在添加到可见容器时变得可见。
- 将类声明更新为 public class EncDecExample 而不是 public class EncDecExample extends JFrame 以避免保留对框架的不必要引用。
以上是为什么我的 JFrame 中只显示顶部面板?的详细内容。更多信息请关注PHP中文网其他相关文章!