我正在进行 BorderLayout
,并且正在处理北面板。在 North 面板中,我希望有 3 个组件:左侧的图片和两个用于分割 Frame
剩余宽度的按钮。现在我正在尝试使用另一个 BorderLayout
来完成此任务。
框架
可调整大小。
图片被分配给BorderLayout.WEST
,并使用以下代码我尝试添加另一个仅包含按钮的面板。然后将该面板添加到 Frame
的 NORTH
布局组件的 CENTER
。
//create panel to hold buttons
JPanel btnPanel = new JPanel();
btnPanel.setLayout(new BorderLayout());
JButton btnMatrix = new JButton("Matrix View");
btnPanel.add(btnMatrix);
JButton btnList = new JButton("List View");
btnPanel.add(btnList);
add(btnPanel);
但是,这两个按钮都试图占据整个面板。如果我将其保留为流布局(我在上面的代码中不使用 btnPanel.setLayout(new BorderLayout());
),按钮会很好地位于中心,但不会展开并分享btnPanel
。
想法?我对 Java 还很陌生,所以我可能从一开始就以错误的方式进行处理。
最佳答案
btnPanel.setLayout(new BorderLayout());
将按钮添加到面板时,您没有指定约束。所以这两个按钮都添加到了 CENTER。但是,CENTER 中只能添加一个组件,因此仅显示最后添加的一个组件。
您可以尝试不同的布局:
btnPanel.setLayout( new GridLayout(0, 2));
然后每个按钮将具有相同的大小,并且两个按钮将填充可用空间。
关于java - 使按钮拆分 JPanel - Java Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36927148/