所以我使用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属性,并在需要时添加它们。这是一个明智的想法吗?或者是否有更有效/更有效的方法。
谢谢!
答案 0 :(得分:1)
“向同一网格添加更多信息”是什么意思?您是否希望能够更改存储在三个JPanel内的信息?或者您希望能够删除当前的JPanel并根据需要添加新的JPanel?
您似乎想要更新存储的播放器信息更改时的JPanel。在这种情况下,请在for循环之外声明JPanels(您声明JFrame和主Panel的地方)。