1

可能重复:
如何将 JLabels 动态添加到 JPanel?

我创建了一个面板并为其使用了网格布局。

public pnlFriends() {
    initComponents();
    this.setLayout(new GridLayout(10,1));
   // showFriends();

}

private void formComponentShown(java.awt.event.ComponentEvent evt) {
    showFriends();
    System.out.print("comp");
}

   private void showFriends()
   {
    //Integer id = NewMain.network.getEdges().get(Main.uuid).getDegree();
    for(int i = 0;i < 10 ;i++)
    {

        String name = "as";
        String occupation ="adf";
        String place = "asdf";
        Integer connections = 5;
        this.add(displayMiniProfile(name,occupation,place,connections));
    }
}

返回displayMiniProfile一个JPanel。

现在,当我在父 JPanel 的构造函数中调用此函数时,它可以工作,我可以添加 MiniProfile JPanel。

但是,当我在componentshown事件响应中调用此函数时,它不会显示任何内容。

为什么 ?

我怎样才能做到这一点?

4

1 回答 1

3

没有显示任何内容,因为在JPanel添加新面板后仍未验证。你需要打电话

revalidate();
repaint();

打电话后

this.add(displayMiniProfile(name,occupation,place,connections));
于 2013-01-10T23:31:16.110 回答