gpt4 book ai didi

java - BorderLayout.CENTER 和 BorderLayout.EAST 之间的 JSeparator?

转载 作者:行者123 更新时间:2023-11-29 03:16:00 25 4
gpt4 key购买 nike

我想制作一个带有 BorderLayout 的程序,其中中心和东部在图形上是分开的。我尝试了以下操作,但不幸的是分隔符位于 JFrame 的左侧,而不是在 centerPanel 和 rightPanel 之间。

setLayout(new BorderLayout());

JPanel centerPanel = new JPanel();
JPanel rightPanel = new JPanel();

centerPanel.add(new JLabel("center"));
rightPanel.add(new JLabel("right"));

getContentPane().add(centerPanel, BorderLayout.CENTER);
getContentPane().add(rightPanel, BorderLayout.EAST);

getContentPane().add(new JSeparator(JSeparator.VERTICAL), BorderLayout.LINE_START);

有人可以帮帮我吗?

最佳答案

您可以使用 Nested Layout为您的中心面板提供 BorderLayout 并将垂直分隔符添加到该面板而不是内容面板的方法:

JPanel centerPanel = new JPanel(new BorderLayout());
centerPanel.add(new JLabel("center"), BorderLayout.CENTER);
centerPanel.add(new JSeparator(JSeparator.VERTICAL), BorderLayout.LINE_END);

JPanel rightPanel = new JPanel();
rightPanel.add(new JLabel("right"));

getContentPane().add(centerPanel, BorderLayout.CENTER);
getContentPane().add(rightPanel, BorderLayout.LINE_END);

其他说明

1) 从 Java 1.4 开始,当使用 BorderLayout 时,强烈鼓励使用新常量:

PAGE_START
PAGE_END
LINE_START
LINE_END
CENTER

来自 How to Use BorderLayout教程(我的粗体文本):

Before JDK release 1.4, the preferred names for the various areas were different, ranging from points of the compass (for example, BorderLayout.NORTH for the top area) to wordier versions of the constants we use in our examples. The constants our examples use are preferred because they are standard and enable programs to adjust to languages that have different orientations.

2) 如果您不想添加任何与 Swing 相关的功能,请避免扩展 Swing 组件。见:

关于java - BorderLayout.CENTER 和 BorderLayout.EAST 之间的 JSeparator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26633876/

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