gpt4 book ai didi

java - 如何获得这个Java布局?

转载 作者:行者123 更新时间:2023-12-01 07:04:08 25 4
gpt4 key购买 nike

在 Java BorderLayout 中,NORTH 部分通常如下所示:

enter image description here

所以我想要的是,NORTHSOUTH 部分与 CENTER 具有相同的宽度。但是EASTWEST部分应该具有CENTER的高度。这意味着角落应该是空的。我不想为此使用 GridLayout,因为我不希望 NORTHCENTER 具有相同的高度。

如何获得此布局?

最佳答案

使用 JPanel 简单地嵌套两个 BorderLayout。在内部面板中,添加北面板和南面板。将内部的放置在外部的 BorderLayout.CENTER 位置。完成。

enter image description here

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.*;

public class SimpleLayout extends JPanel {
public SimpleLayout() {
JPanel innerPanel = new JPanel(new BorderLayout());
innerPanel.add(createLabeledPanel("Center"), BorderLayout.CENTER);
innerPanel.add(createLabeledPanel("North"), BorderLayout.PAGE_START);
innerPanel.add(createLabeledPanel("South"), BorderLayout.PAGE_END);

setLayout(new BorderLayout());
add(innerPanel, BorderLayout.CENTER);
add(createLabeledPanel("East"), BorderLayout.LINE_END);
add(createLabeledPanel("West"), BorderLayout.LINE_START);
}

private JComponent createLabeledPanel(String text) {
JLabel label = new JLabel(text, SwingConstants.CENTER);
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createLineBorder(Color.black));
panel.add(label);
return panel;
}

private static void createAndShowGui() {
SimpleLayout mainPanel = new SimpleLayout();

JFrame frame = new JFrame("SimpleLayout");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

关于java - 如何获得这个Java布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30831765/

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