如标题中所述.我使用BorderLayout()在另一个上面有两个JPanel.
import java.awt.*; import javax.swing.*; public class myForm(){ public static void main(String[] args) { JFrame myFrame = new JFrame("SingSong"); myFrame.setLocation(100,100); myFrame.setSize(new Dimension(1024,800)); myFrame.setLayout(new BorderLayout()); JPanel jp = new JPanel(); jp.setBackground(new Color(0x00FF00FF)); JPanel jp2 = new JPanel(new BorderLayout()); jp2.setBackground(new Color(0x00000000)); jp.setPreferredSize(new Dimension(100,400)); jp2.setPreferredSize(new Dimension(100,400)); jp2.setLocation(0,512); myFrame.add(jp2,BorderLayout.SOUTH); myFrame.add(jp,BorderLayout.NORTH); } }
它们各占一半,但我怎么能设置它以便它们总是占用JFrame的一半,即使调整大小?
(P.S.我通常使用更好的变量名称,我只是把它作为SSCCE)
解决方法
试试GridLayout
JFrame myFrame = new JFrame("SingSong"); myFrame.setLocation(100,100); myFrame.setSize(new Dimension(1024,800)); GridLayout layout = new GridLayout(2,1); myFrame.setLayout(layout); JPanel jp = new JPanel(); jp.setBackground(new Color(0x00FF00FF)); JPanel jp2 = new JPanel(new BorderLayout()); jp2.setBackground(new Color(0x00000000)); myFrame.add(jp); myFrame.add(jp2); myFrame.setVisible(true);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。