项目需要,写一个显示网络拓扑结构的插件(见我之前的博客),根据客户需要,要在拓扑展示面板添加滚动条,研究了一好一会……
?
我是将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 );
?