java ——JPanel绘图添加滚动条

博主在编写JAVA图形界面时遇到一个问题,需要在Panel中绘制图形并添加滚动条。起初尝试直接使用JScrollPane未能成功,后经搜索并在百度找到一个解答,通过在Panel上设置`setOpaque(false)`和`setPreferredSize(new Dimension(1024, 768))`,成功实现了滚动效果。博主强调了搜索能力和英语的重要性,并分享了关键代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为编写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);
}

越来越明白搜索资料能力和英语的重要性。。。。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值