gpt4 book ai didi

java - 组件未对准

转载 作者:行者123 更新时间:2023-12-01 18:45:05 26 4
gpt4 key购买 nike

我知道我已经问过这个问题,但由于我在示例代码中的错误以及未能实际提出问题,头几个小时已经过去了,我很少得到任何新的评论或旧问题的答案。原件已被删除。

我使用此代码生成了下面的窗口(准确地说,是橙色矩形内的所有内容):

        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
setBackground(Color.YELLOW);
setFixedSize(new Dimension(LayoutConstants.PAGE_WIDTH + 2*LayoutConstants.HALF_SPACE_BETWEEN_PAGES, LayoutConstants.PAGE_HEIGHT + 2*LayoutConstants.HALF_SPACE_BETWEEN_PAGES));
setBorder(BorderFactory.createLineBorder(Color.ORANGE, LayoutConstants.HALF_SPACE_BETWEEN_PAGES));

JPanelSize header = new JPanelSize();
header.setBackground(Color.RED);
header.setSize(new Dimension(LayoutConstants.PAGE_WIDTH, LayoutConstants.HEADER_HEIGHT));
add(header);

elementContainer = new JPanelSize();
elementContainer.setLayout(new BoxLayout(elementContainer, BoxLayout.Y_AXIS));
elementContainer.setBackground(Color.GREEN);
elementContainer.setFixedSize(new Dimension(LayoutConstants.CONTENT_WIDTH, LayoutConstants.CONTENT_HEIGHT));
add(elementContainer, BorderLayout.CENTER);


JPanelSize footer = new JPanelSize();
footer.setBackground(Color.MAGENTA);
footer.setFixedSize(new Dimension(LayoutConstants.PAGE_WIDTH, LayoutConstants.FOOTER_HEIGHT));
add(footer);

这是 JPanelSize 类,它极大地简化了我的生活:

import java.awt.Dimension;

import javax.swing.JPanel;

public class JPanelSize extends JPanel
{
private static final long serialVersionUID = 1L;

public void setFixedSize(Dimension size)
{
setMinimumSize(size);
setPreferredSize(size);
setMaximumSize(size);
}
}

这就是结果:

enter image description here

页眉和页脚应填充黄色区域,而绿色 JPanel 应居中。高度都很好。

我要重写 set(...)Size() 方法,因为我在这里模拟 A4。

我做错了什么?

最佳答案

“我做错了什么?”使用单一布局来实现所有事情。 BorderLayout 可以满足页眉和页脚的要求,然后您可以继续使用 BoxLayout 作为正文

这通常称为复合布局,在处理复杂布局要求时非常有用

关于java - 组件未对准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137083/

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