嘿..。我有一个JPanel,在这个contentPanel中我添加了一些其他的自定义面板,并给出了它们的位置等。所以现在我添加了一个JScrollPane到contentPanel,当我向下滚动它总是清除我的contentPanel,但面板仍然在那里,但看不到……
如何才能使它们再次可见?
这是我将面板添加到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();
}谢谢
发布于 2010-09-27 05:33:29
我有答案了!:)
我使用的是GridLayout,而不是FlowLayout,所以它可以自动刷新面板=)
发布于 2010-09-27 04:51:11
听起来您没有正确使用LayoutManager。
在创建JFrame (我猜是在构造函数中)之后,添加以下内容(例如):
this.setLayout(new FlowLayout());对于您要做的事情,这肯定不是最好的布局管理器,但会阻止add调用覆盖显示的组件。
您将需要进一步阅读有关LayoutManager的
除此之外,扩展JFrame也不可取。更好的做法是将JFrame视为类的成员,就像对待所有其他组件一样。
https://stackoverflow.com/questions/3799735
复制相似问题