java - BorderLayout West Center East all 等宽

标签 java swing awt layout-manager border-layout

我将对象动态添加到面板,然后添加到我的边框布局。我需要西部、中心和东部的大小都相等。这是我目前所拥有的:

static int width = 300;//Screen width
static int height = width / 16 * 9;//Screen height
static int scale = 3;

private JFrame frame;

//player is an object from a Player Class will an arrayList of Items.. 
public void LoadPlayer(Player player){
int count = 1;
for (Items i : player.getAllItems()){
    JPanel jp= new JPanel();
    JLabel jlItem= new JLabel(i.getName());
    BorderLayout bl = (BorderLayout) (mainPanel.getLayout()) ;
    jp.add(jlItem);
    jp.setBorder(BorderFactory.createLineBorder(Color.BLACK));

    if (bl.getLayoutComponent(BorderLayout.WEST)  == null){
        mainPanel.add(jp,BorderLayout.WEST);
        jp.setSize(frame.getWidth()/3, height);
        System.out.println("adding item " + count+" to west panel");
    }
    else if (bl.getLayoutComponent(BorderLayout.CENTER)  == null){
        jp.setSize(frame.getWidth()/3, height);
        mainPanel.add(jp,BorderLayout.CENTER);
        System.out.println("adding item " + count+" to center panel");
    }
    else if (bl.getLayoutComponent(BorderLayout.EAST)  == null){
        mainPanel.add(jp.BorderLayout.EAST);
        jp.setSize(frame.getWidth()/3, height);
        System.out.println("adding item" + count+" to east panel");
    }
    count++;
}
}

我希望这会奏效,但没有奏效。我做了一些搜索,但似乎找不到任何说明您可以或不能设置 WESTCENTER 大小的内容东面板。 有谁知道如何做到这一点?

最佳答案

I need the West, Center and East all to be equal size..

单行GridLayoutnested layoutBorderLayout.CENTER 中将实现这一目标。

关于java - BorderLayout West Center East all 等宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16642045/

相关文章:

java - 从 codenameone OnOff 开关获取值

JavaFX Stage 关闭事件处理程序

java - 如何在 Java 中从另一个构造函数调用一个构造函数?

java - 通过 JOptionPane.showInputDialog 在标题中使用自定义图标

java - 在 JList 项目之间添加空格

Java 如何识别照片颜色?

java - 在 HTML 中使用 Java applet 方法

java - 基于全词短语的最长最常见子串

java - 如何在运行时更改 Swing 应用程序的外观?

java - URL url = getClass().getResource ("") 指的是哪个位置?