0

だから私は中心位置の girdLayout で borderLayout パネルを使用しています。いくつかのオブジェクトを 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

「同じグリッドにさらに情報を追加する」とはどういう意味ですか? 3 つの JPanel の内部に格納されている情報を変更できるようにしたいということですか? または、現在の JPanels を削除して、必要に応じて新しい JPanels を追加できるようにしたいですか?

プレイヤーの情報が変更されたときに、保存されている JPanel を更新したいようです。その場合、for ループの外側で JPanels を宣言します (ここで、JFrame とメイン パネルを宣言します)。

于 2013-05-20T04:09:02.557 に答える