0

所以我使用borderLayout面板和一个girdLayout作为中心位置,我已经向我的gridLayout添加了一些对象,但后来我想向相同的网格添加更多信息。

private JFrame frame;
private JPanel mainPanel;
static private JPanel centerPanel;

public void loadPlayer(Player player){
int count = 1;

 centerPanel = new JPanel(new GridLayout(1,3));

for (Item i: player.getAllItems()){

    JPanel jpI= new JPanel();
    JLabel jlItem= new JLabel(i.getName());
    BorderLayout bl = (BorderLayout) (mainPanel.getLayout()) ;
    jpI.add(jlItem);
    jpI.setBorder(BorderFactory.createLineBorder(Color.BLACK));

    centerPanel.add(jpI);
    mainPanel.add(centerPanel,BorderLayout.CENTER);

 }

我最初的想法是在我的类中添加 3 个 JPanel 属性,并在需要时附加这些属性。这是一个明智的想法吗?还是有更有效/更有效的方法来做到这一点。

谢谢!

4

1 回答 1

1

“向相同的网格添加更多信息”是什么意思?您的意思是您希望能够更改存储在三个 JPanel 中的信息吗?或者您希望能够删除当前的 JPanel 并根据需要添加新的?

似乎您想在播放器信息更改时更新存储的 JPanel。在这种情况下,请在 for 循环之外声明 JPanel(在其中声明 JFrame 和主面板)。

于 2013-05-20T04:09:02.557 回答