java - 将一个网格布局分成两部分

标签 java swing layout layout-manager

我想将一个充满按钮的网格布局分成两部分,其中前 5 个按钮可以进入 BorderLayout 的北部,后 5 个按钮可以进入南部。

    myPanel = new JPanel(new GridLayout(10, 1, 5, 10));
    final JPanel mainPanel = new JPanel(new BorderLayout());

最佳答案

有很多选项,仅使用一个面板,您可以更改 GridLayout 属性以允许 5 列和 2 行...

Couple of rows

JPanel panel = new JPanel(new GridLayout(2, 10));
for (int index = 0; index < 10; index++) {
    panel.add(new JButton(Integer.toString(index)));
}

或者,您可以使用三个面板,一个充当外部容器,定义行,其他面板定义行

Couple of more rows

JPanel outer = new JPanel(new GridLayout(2, 1));

JPanel topRow = new JPanel(new GridLayout(1, 5));
for (int index = 0; index < 5; index++) {
    topRow.add(new JButton(Integer.toString(index)));
}
JPanel bottomRow = new JPanel(new GridLayout(1, 5));
for (int index = 5; index < 10; index++) {
    bottomRow.add(new JButton(Integer.toString(index)));
}

outer.add(topRow);
outer.add(bottomRow);

关于java - 将一个网格布局分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35235910/

相关文章:

java - 具有纯 JDBC-JNDI :javax. naming.NameNotFoundException : Name [jdbc/KDB] is not bound in this Context. 无法找到 [jdbc] 的 Tomcat 8.5

java - "add non-palette componente"的 Intellij 错误

css - 行从超大屏幕中出来

java - 在 ehcache 中序列化元素时出错

java - 多次调用时用于 Iterable 实现的模拟拆分器?

java - JTable 在自动刷新方案上插入数据

java - 如何使用 JTree Listener 动态更改带有 CardLayout 的 JPanel?

jquery - 从 Google API 将背景图片附加到超大屏幕类

java - FlowLayout.CENTER 未使组件居中

java - 使用 UUID 作为业务键和 equals/hashmethod