以下的panel我是放在一个frame上的。因为我现在需要根据这个panel上面放的元素多少来确定大小,比如一行放几个元素等等。用以下的代码是可以实现的。但是我把这个panel放在一个scrollpanel上面之后,有滚动条的出现。但是我拖动这个滚动条却无法往下拉,滚动条就是不往下面走。强拉到最下面松开鼠标就又弹回去了。而且界面也没跟着动。请问是怎么回事?我该怎么办呢?
JPanel panel2=new JPanel(new FlowLayout(FlowLayout.LEFT))
{
public Dimension getPreferredSize(){
JViewport viewport =(JViewport)getParent();
if (viewport!=null){
int wid=viewport.getWidth();
setSize(wid,100);
doLayout();
FlowLayout layout = (FlowLayout)getLayout();
int hei = layout.getVgap();
for (int i = 0; i < getComponentCount(); i++) {
Component c = getComponent(i);
hei = Math.max(hei, c.getY() + c.getHeight() + layout.getVgap());
}
return new Dimension(wid,hei);
}
return super.getPreferredSize();
}
};
JPanel panel2=new JPanel(new FlowLayout(FlowLayout.LEFT))
{
public Dimension getPreferredSize(){
JViewport viewport =(JViewport)getParent();
if (viewport!=null){
int wid=viewport.getWidth();
setSize(wid,100);
doLayout();
FlowLayout layout = (FlowLayout)getLayout();
int hei = layout.getVgap();
for (int i = 0; i < getComponentCount(); i++) {
Component c = getComponent(i);
hei = Math.max(hei, c.getY() + c.getHeight() + layout.getVgap());
}
return new Dimension(wid,hei);
}
return super.getPreferredSize();
}
};
{
public Dimension getPreferredSize(){
JViewport viewport =(JViewport)getParent();
if (viewport!=null){
int wid=viewport.getWidth();
setSize(wid,100);
doLayout();
FlowLayout layout = (FlowLayout)getLayout();
int hei = layout.getVgap();
for (int i = 0; i < getComponentCount(); i++) {
Component c = getComponent(i);
hei = Math.max(hei, c.getY() + c.getHeight() + layout.getVgap());
}
return new Dimension(wid,hei);
}
return super.getPreferredSize();
}
};