我创建了一个面板并使用了gridlayout。
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
事件的响应中调用此函数时,它没有显示任何内容。
为什么?
我怎样才能达到同样的目标?
答案 0 :(得分:2)
未显示任何内容,因为在添加新面板后仍未验证JPanel
。您需要致电
revalidate();
repaint();
之后
this.add(displayMiniProfile(name,occupation,place,connections));