Only the Top Panel Appearing in JFrame
In a JFrame, the BorderLayout is the default content pane. When adding components without specifying constraints, they are placed in the center section of the BorderLayout. However, only one component can occupy this area.
To resolve this issue, use BorderLayout constraints to specify the location of each panel:
<code class="java">f.add(top, BorderLayout.PAGE_START);
f.add(mid);
f.add(bot, BorderLayout.PAGE_END);</code>
Additional Optimizations:
- Remove f.setSize(500, 500); and use pack() instead, as it sets the frame size based on its contents.
- Change f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); to f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); to properly terminate the GUI when closed.
- Remove in.setVisible(true); as components become visible when added to a visible container.
- Update the class declaration to public class EncDecExample instead of public class EncDecExample extends JFrame to avoid keeping an unnecessary reference to a frame.
The above is the detailed content of Why Does Only the Top Panel Appear in My JFrame?. For more information, please follow other related articles on the PHP Chinese website!
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn