所以我使用 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 属性,并在需要时追加这些属性。这是一个明智的想法吗?或者是否有更有效的方法来做到这一点。
谢谢!
最佳答案
“向同一网格添加更多信息”是什么意思?您的意思是您希望能够更改存储在三个 JPanel 中的信息吗?或者您希望能够删除当前的 JPanel 并根据需要添加新的 JPanel?
您似乎想随着玩家信息的变化而更新存储的 JPanel。在这种情况下,请在 for 循环之外声明 JPanel(在其中声明 JFrame 和主面板)。
关于java - 访问 gridLayout 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16642413/