JScrollPane总是清除我的Panel

时间:2010-09-26 20:40:32

标签: java panel jscrollpane repaint

Hy ..我有一个JPanel,在这个contentPanel中我添加了一些其他自定义面板并给它们位置等等。所以现在我在contentPanel中添加了一个JScrollPane,当我向下滚动时它会清除我的contentPanel,但是面板仍在那里,但不可见......

如何让它们再次可见?

这是我将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();
}

由于

2 个答案:

答案 0 :(得分:1)

听起来你没有正确使用LayoutManager。

创建JFrame后(我在构造函数中猜测)添加以下内容(例如):

this.setLayout(new FlowLayout());

这肯定不是您尝试做的最好的布局管理器,但会阻止add调用覆盖显示的组件。

您需要进一步了解LayoutManager s

除此之外,扩展JFrame并不可取。最好将JFrame视为您的类的成员,就像所有其他组件一样。

答案 1 :(得分:0)

我有答案! :)

我使用GridLayout而不是FlowLayout,所以没关系,它会自动刷新面板=)