JScrollPane的注意事项

第一次写学习笔记,首先发几句牢骚:之前写软工作业,用C++感觉太坑了,加上之前有android

的一点点java基础,于是DB大作业果断选择了使用java。周末苦逼了两天,把之前几乎没怎么动

的作业赶到几乎完成。昨晚长嘘一口气,对自己说把这个页面加个滚动条就去睡觉。然后就从9点

多搞到12点还是失败的。当时一拳打爆显示屏的心都有啊,T_T。然后今天早上10点多总算成功了。
第一次写swing的稍微大点的APP,书本是推荐用一个Jframe和多个JPanel来组织代码的,于是我

需要加滚动条的那个页面本来也是JPanel。
尝试1:试图在Jpanel里面添加个JScrollPane,再继续弄。
结果1:怎么都显示不出来。
想法:JScrollPane最好还是不要放Jpanel里面。
于是我把该页面改成JScrollPane,JScrollPane的用法和JPanel不完全一样。推荐用法是在里面

放一个JPanel,再往JPanel里面添加控件。 添加完后,还要以下两句。
panelForScroll.setPreferredSize(new Dimension(1000,2000));
this.getViewport().add(panelForScroll);
第一句是设定JPanel的大小,如果不设定好像会出一些奇奇怪怪的问题,因为JPanel没有设定

大小的话没法被滚动条识别。第二句是在JScrollPane里面的Viewport里面添加JPanel。而且千

万记得JScrollPane本身不要setLayout(null),可能导致不显示。
做完如上一大堆改动后,我的页面依然什么东西都没有。我当时着急了,自己写了个很小的

JScrollPane类,只放了个Jpanel,上面一个按钮。这个小类可以正常显示。找BUG找了很久

无果,我做了另一种尝试,即把大类(从JPanel改成JScrollPane的那个类)的所有内容复制

出来,放到一个新的类里面,然后新的类可以显示。

本来是public class JS extends JPanel,被我改成public class JS extends JScrollPane,这个

JS类死活不能用,我新建了个类public class JS2 extends JScrollPane,其他内容都从JS那

边复制过来,然后JS2可以用。于是我的结论是不要轻易改变extends后面的东西,
可能会导致IDE处理出问题。(我用的是eclipse)
然后由于JS2可以显示,也有滚动条后,我以为接近成功了。后来发现另外一些很二的问题。

有时候我们会动态改变JScrollPane的内容,改完什么东西都显示不出来。我的解决方案是:
Jframe.removeAll();
然后依次一个个页面add回来,最后把当前的JScrollPane也add回来,就可以显示了。记住

一定要是最后一个 add JScrollPane。如果还不显示,再加上一句Jframe.validate(),再不行

我也没办法了。
好了,就写这些吧。今天终于把它交上去了,然后开始苦逼的暑假大作业之旅。以后也要多

多写学习笔记吧,呵呵。

顺便吐槽一下这排版真是太蛋疼了。。。




  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值