java - 使按钮拆分 JPanel - Java Swing

标签 java swing

我正在进行 BorderLayout,并且正在处理北面板。在 North 面板中,我希望有 3 个组件:左侧的图片和两个用于分割 Frame 剩余宽度的按钮。现在我正在尝试使用另一个 BorderLayout 来完成此任务。

框架可调整大小。

图片被分配给BorderLayout.WEST,并使用以下代码我尝试添加另一个仅包含按钮的面板。然后将该面板添加到 FrameNORTH 布局组件的 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/

相关文章:

java - 数据库数据没有填入 JTable

java - Android 应用程序中的条件语句未按预期工作

java - JPEG如何在解码文件流时跳过用户定义的标签

java - 向 JPanel 添加仅调用 onload 的监听器

java - 编辑将 JTable 写入 Excel

java - 输入目录名后清除文件名并回车

java - Json Web服务数据检索

java - 如何根据名称、大小和上次修改时间对目录列表进行排序?

java - 如何在 JFrame 弹出错误后使主窗口处于非 Activity 状态

java - 项目缺少所需的库 : 'forms-1.3.0.jar' and 'miglayout15-swing.jar'