如何让它们再次可见?
这是我将Panel添加到contentPanel的代码。 x,y,j是该位置的一些设置,因为我有一个固定的窗口。
private void reloadContentPanel() {
int x = -200, y = 0, j = 1, row = 4;
EventPanel panel = null;
int i;
for(i=0; i < this.images.size();i++)
{
panel = new EventPanel(this.images.get(i).getAbsolutePath(),
this.images.get(i).getName());
panel.setLocation(x+(j*200), y);
j++;
if(i == row) {
x = -200;
y += 205;
j = 1;
row += 5;
}
this.contentPanel.add(panel);
}
this.repaint();
}
由于
答案 0 :(得分:1)
听起来你没有正确使用LayoutManager。
创建JFrame后(我在构造函数中猜测)添加以下内容(例如):
this.setLayout(new FlowLayout());
这肯定不是您尝试做的最好的布局管理器,但会阻止add
调用覆盖显示的组件。
您需要进一步了解LayoutManager s
除此之外,扩展JFrame并不可取。最好将JFrame视为您的类的成员,就像所有其他组件一样。
答案 1 :(得分:0)
我有答案! :)
我使用GridLayout而不是FlowLayout,所以没关系,它会自动刷新面板=)