为什么滚动条不工作?

时间:2022-12-14 07:56:07
我写了一段代码:
JFrame frame=new JFrame();
    frame.getContentPane().add(pflow);
    frame.setBackground(new Color(129,138,255));

    frame.setSize(1000,1200);

    JScrollPane sc=new JScrollPane(pflow,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
             JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );
     frame.getContentPane().add(sc);

把一个滚动条放在一个frame中,但滚动条不能拖动,也没有出现那条长条,只出现了那个滚动条框架,这是怎么回事呢?
那个滚动条是加在一个frame中,那个frame是用来画一幅流程图的,当流程图的尺寸大于frame的尺寸时,就希望一个滚动条可拖动,但就是没有出现那条长条,只出现了那个滚动条框架,这是怎么回事呢?

22 个解决方案

#1


建议用JPanel放到scrollpane中,如果是做分窗口,建议用JInternalFrame

#2


同意楼上!

#3


getContentPane().setLayout(null);

#4


还是scrollpane既简单又实用^_^

#5


getContentPane().setLayout(null);

这句是干什么用的?

#6


再顶

#7


getContentPane().setLayout(null);
是删除jframe中的contentpane的布局管理器方法!不知楼上用这个方法干嘛?

#8


frame.getContentPane().add(pflow);

 JScrollPane sc=new JScrollPane(pflow,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
             JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );

2个地方都加了pflow,你的pflow是什么?这样不可能对的,把第一个去掉

#9


pflow是一个画图类PaintFlow 的对象,
public class PaintFlow extends JPanel  {

我是通过这个对象在JPanel上画图,然后把这个JPanel加在一个Jrame上,并想加上滚动条,哪知道滚动条。。。

#10


JPanel panel =new JPanel();
panel.add(pflow);
panel.add(sc);
frame.getContentPane().add(panel);

其他的不改!试试看。

#11


你把第一个去掉还不能滚动吗?

#12


去掉拉第一个,还是不能滚动。。。

#13


你把你代码都贴出来,这么弄没法看出问题

#14


哦。。。不过很长,贴那一段好呢?

#15


up!

#16


滚动条是按照目前它里面的内容的大小来决定显示与否的,
pflow.setPreferredSize(new Dimension(10000, 10000));
不显示滚动条才怪呢

#17


up

#18


滚动条只有在容器内的面板尺寸超过容器时才会显示出来
你要确定滚板里是否添加了控件,并且控件的尺寸是多少

#19


Hi!

#20


maizisky(麦子) 
同意!

看到这儿才看到我想看的!
呵呵

#21


呵呵,这么简单啊,没超出长宽的时候自然没有滚动条的出现啊。呵呵

#22


还有一个问题:
怎么样把JTabel中的某一格中的字体显示为红色?

#1


建议用JPanel放到scrollpane中,如果是做分窗口,建议用JInternalFrame

#2


同意楼上!

#3


getContentPane().setLayout(null);

#4


还是scrollpane既简单又实用^_^

#5


getContentPane().setLayout(null);

这句是干什么用的?

#6


再顶

#7


getContentPane().setLayout(null);
是删除jframe中的contentpane的布局管理器方法!不知楼上用这个方法干嘛?

#8


frame.getContentPane().add(pflow);

 JScrollPane sc=new JScrollPane(pflow,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
             JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );

2个地方都加了pflow,你的pflow是什么?这样不可能对的,把第一个去掉

#9


pflow是一个画图类PaintFlow 的对象,
public class PaintFlow extends JPanel  {

我是通过这个对象在JPanel上画图,然后把这个JPanel加在一个Jrame上,并想加上滚动条,哪知道滚动条。。。

#10


JPanel panel =new JPanel();
panel.add(pflow);
panel.add(sc);
frame.getContentPane().add(panel);

其他的不改!试试看。

#11


你把第一个去掉还不能滚动吗?

#12


去掉拉第一个,还是不能滚动。。。

#13


你把你代码都贴出来,这么弄没法看出问题

#14


哦。。。不过很长,贴那一段好呢?

#15


up!

#16


滚动条是按照目前它里面的内容的大小来决定显示与否的,
pflow.setPreferredSize(new Dimension(10000, 10000));
不显示滚动条才怪呢

#17


up

#18


滚动条只有在容器内的面板尺寸超过容器时才会显示出来
你要确定滚板里是否添加了控件,并且控件的尺寸是多少

#19


Hi!

#20


maizisky(麦子) 
同意!

看到这儿才看到我想看的!
呵呵

#21


呵呵,这么简单啊,没超出长宽的时候自然没有滚动条的出现啊。呵呵

#22


还有一个问题:
怎么样把JTabel中的某一格中的字体显示为红色?