因为编写JAVA图形界面的时候需要用到这个功能,我想要把下面的图形(是在panel里面画的)实现成类似有边界线并且可以通过滚动条滚动的效果。
我起初的思路是在panel里面画图,然后利用JScrollPane达成我的目的,但是添加的滑动组件还是滑动不了
所以我在百度上面花了整整一个晚上的时间去查,有一说一,百度上面的信息过于繁琐模糊,而且大多都是好几年前的了,运气特别特别好,在我要放弃的时候,我从这个回答里面的代码得到了思路https://zhidao.baidu.com/question/88801797.html,它是调整图片,我是调整绘图,本质操作是一样的,因此我研究了下它的代码,发现它主要就是多了这俩句
panel.setOpaque( false );
panel.setPreferredSize( new Dimension(1024, 768) );
然后我在我的代码里面添加上去这俩句之后,完美解决了这个问题!
至于这俩句命令的具体涵义,有兴趣的可以自行去百度,我查了很久,但发现网上说的也都十分模糊,几乎把我给绕进去了,而且这是对在JScrollPane中的Jpanel进行操作,发现和网上的还是有一定区别,没有深究下去。
实现代码
public Penrose_Tiling()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0, 0, 955, 614);
getContentPane().setLayout(null);
Mypanel panel = new Mypanel();
panel.setForeground(Color.BLACK);
panel.setBackground(Color.BLACK);
panel.setBorder(new LineBorder(new Color(0, 0, 0), 2));
panel.setOpaque( false );
panel.setPreferredSize(new Dimension(2000, 2000));
getContentPane().add(panel);
JScrollPane jpanel=new JScrollPane(panel,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jpanel.setBounds(0, 0, 769, 481);
getContentPane().add(jpanel);
}
越来越明白搜索资料能力和英语的重要性。。。。