gpt4 book ai didi

java - 如何让两个 JPanel 水平拆分,每个 JPanel 始终占据屏幕的一半?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:34 26 4
gpt4 key购买 nike

如标题所述。我使用 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);

关于java - 如何让两个 JPanel 水平拆分,每个 JPanel 始终占据屏幕的一半?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11623260/

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