日期:2014-05-16  浏览次数:20315 次

java JScrollPane 滚动条不好使问题,以及JScrollPane中放入JLayeredPane问题

项目需要,写一个显示网络拓扑结构的插件(见我之前的博客),根据客户需要,要在拓扑展示面板添加滚动条,研究了一好一会……

?

我是将JLayeredPane放入JScrollPane中,开始怎么都不能显示滚动条,JScrollPane的size设小了是显示出来了,但是即使JLayeredPane中的内容超过了JScrollPane滚动条也不起作用,后来网上找到一个办法:

?

关键几句:

?JScrollPane pane = new JScrollPane();
?pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
?pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
?pane.setSize(300, 200);? //关键!这里要用setSize设定固定大小!!!

?

?JLayeredPane layerPane = new JLayeredPane();

?layerPane.setPreferredSize(new Dimension(1000, 700));

//关键!可以设定大些或设成和JScrollPane同样大小,这样如果内部空间位置超出设置的大小就会根据位置显示滚动条,? 注意不能用setSize(否则滚动条不显示)!

?

?

?pane.setViewportView( layerPane );
?