繁体   English   中英

BorderLayout西中心东全部相等的宽度

[英]BorderLayout West Center East all Equal width

我将对象动态添加到面板,然后添加到我的边框布局。 我需要西部,中部和东部都相等。 这是我到目前为止的内容:

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++;
}
}

我希望这会成功,但是没有成功。 我做了一些搜索,似乎找不到任何可以说明或无法设置WESTCENTEREAST面板大小的信息。 有谁知道如何做到这一点 ?

我需要西,中和东都相等。.

嵌套布局BorderLayout.CENTER中的单行GridLayout将实现此目的。

您永远不会在组件上使用setSize()方法。 那是布局管理器的工作。

如果希望面板大小相同,则可以使用GridLayout。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM