- 博客(5)
- 收藏
- 关注
原创 匿名类中的方法为什么不能修改外部类的局部变量?
匿名类中的方法为什么不能修改外部类的局部变量?首先局部变量是定义在栈中的,一旦超出其作用范围就立马销毁释放。而匿名类中的方法是跟匿名对象绑定的,通过new实例化,放在堆中,只要java垃圾回收线程不释放它,它就长期存在。因此在匿名类调用外部类的普通局部变量就有可能出错,因为该局部变量可能已经被释放。所以为了能让匿名类也能方便使用外部类中局部变量。java干脆直接把在匿名类中使用的外部类中的局部变量变成final类型,因为final类型为常量也是放在堆中的。这样当匿名类调用该局部变量时,就不会出现
2021-12-03 18:19:44
559
原创 为什么匿名类没有静态方法?
为什么匿名类没有静态方法?静态方法是跟着类加载而加载的。而匿名类在加载的时候往往就是在定义匿名对象的时候,虽然匿名类加载的时间略早于匿名对象,但几乎可以说是同时的。也就是说匿名类的方法都是跟对象绑定的,那不就是普通方法吗?即使匿名类有静态方法,其调用方式也是一样的,因为匿名类无类名,无法通过类名调用静态方法是为了使该类多个对象共有同一个方法,而匿名类只能定义一个对象,该类的所有方法均跟该对象绑定,那该类的所有方法那不都相当于普通方法吗?所以没有必要定义静态方法最后,也是最重要的。既然在匿名类申明普
2021-12-03 18:03:16
582
1
原创 JTable单元格相关样式设置
正文描述:本文主要关于三部分。第一部分,使表格文字居中,并设置表格相关样式;第二部分,当进入表格单元格设置相关样式;第三部,当进入表格单元格时,默认选中该单元格所有内容。1. 表格文字居中使用DefaultTableCellRenderer设置文字居中对齐,如图:表格相关样式:2. 进入表格单元格相关样式设置,需要利用匿名类重写JTable的prepareEditor方法,如图:## 3. 进入某个单元格选中该单元格的所有类容,利用匿名类重写editCellAt方法,如下图所示:其中:E
2021-11-13 21:54:31
1770
原创 JSwing背景图大小自适应
正文描述:使背景图跟着JFrame大小的改变而改变的Java实现实现步骤:重写JLabel中的Paint方法+给JFrame添加一个组件监听器重写paint方法,调用drawImage方法根据JLabel的大小绘制图片给JFrame添加一个ComponentListener,监听JFrame的大小是否改变。若改变,则重新设置JLabel的大小,使之等于JFrame的大小,并调用repaint()方法。注:repaint()方法会自动调用paint方法.完整实现代码:package
2021-11-13 20:26:27
964
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人