我想用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);
有人可以帮帮我吗?
答案 0 :(得分:4)
您可以使用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教程(粗体文字):
在JDK 1.4版之前,各个领域的首选名称是 不同的,从指南针的点(例如, 最高区域的
BorderLayout.NORTH
到word的版本 我们在示例中使用的常量。 我们的示例使用的常量是 首选,因为它们是标准的,并使程序可以适应 具有不同方向的语言。
2)如果您未能添加任何与Swing相关的功能,请避免扩展Swing组件。参见: