gpt4 book ai didi

Java BorderLayout 放置面板时出现问题

转载 作者:行者123 更新时间:2023-12-01 09:41:04 24 4
gpt4 key购买 nike

我是 Java GUI 的新手,目前正在致力于创建微波 GUI。我正在尝试将面板放置在面板中,但它并没有真正按照我认为的那样工作。我正在使用 BorderLayout,基本上将一个面板放入 BorderLayout.WEST 中,并在其中放入 2 个面板(北和中心)。但不知何故,我无法在其中心添加面板,它似乎一直向北。请参阅下面我的代码。

private void buildFrame() 
{
ovenLabel=new JLabel("Oven Area - Food goes here");
add(ovenLabel, BorderLayout.CENTER);
ovenLabel.setBackground(Color.white);
ovenLabel.setOpaque(true);
ovenLabel.setHorizontalAlignment(JLabel.LEFT);
ovenLabel.setVerticalAlignment(JLabel.TOP);
ovenLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5));

//sidePanel
side=new JPanel();
add(side, BorderLayout.EAST);
side.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5)); //remove this later
//top panel
sideTop=new JPanel();
sideTop.setBackground(Color.white);
sideTop.setOpaque(true);
sideTop.setLayout(new GridLayout(3, 1));
side.add(sideTop, BorderLayout.NORTH);
displayLabel=new JLabel[3];
for(int i=0;i<displayLabel.length; i++)
{
displayLabel[i]=new JLabel("");
sideTop.add(displayLabel[i]);
}
displayLabel[0].setText("Cooking time is displayed here. . .");
//bottom panel
sideBot=new JPanel();
sideBot.setLayout(new GridLayout(5, 3));
side.add(sideBot, BorderLayout.CENTER);
buttons=new JButton[15];
for(int i=0;i<buttons.length;i++)
{
buttons[i]=new JButton("test");
sideBot.add(buttons[i]);
}
//button




}

最佳答案

如果您想使用 BorderLayout ,请确保容器将 BorderLayout 作为其布局管理器,否则约束(NORTH 等)将不会被使用。理解为他们应该的:

side.setLayout(new BorderLayout());

(在添加任何内容之前执行此操作)

如果您调用:

System.out.println(side.getLayout()); 

在进行修改之前,您将看到您的面板默认有一个FlowLayout

关于Java BorderLayout 放置面板时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441163/

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