Java内部类访问外部对象的方法
Java编程时,为类DialogTry2添加关闭窗口事件,我在构造方法中采用事件适配器来实现:
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
this.dispose();
}
});
本意是为当前窗口(实际上为一个对话框)添加关闭窗口事件。但编译器报错说,new WindowAdapter()不存在dispose()方法。我明白过来,this.dispose()中的this不是窗口对象,而是适配器对象。那么怎样调用外部对象即窗口对象呢?既不能用super也没有outer。上网查一下,找到一个方法:在这个复合语句外面加一句:
final DialogTry2 outer = this;
然后把this.dispose();改为:
outer.dispose();
这样就好了。也看明白了怎么回事。原来this作为当前的对象可以这样调用啊,长见识了。
改好的程序如下:
final DialogTry2 outer = this;
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
outer.dispose();
}
});
不记得从哪个网页看到的了,那页很复杂,讲了许多问题,我只从其中摘出这一条来。感谢那位网友。
相关文档:
Java和其他语言不同的是,Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以一种和平台无关的格式保存的,而不是某种特定的机器上运行的格式。这种格式和传统的可执行代码格式有很多重要的区别。具体来说,不同于C或者C++程序,Java程序不是一个独立的可执行文件,而是由很多分开的类文件组成,每个类文件对应一个 ......
两种形式:
1, 饿汉式单例类
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
p ......
最近开始学习java,参考教科书写了一个简单的计算器程序,贴上来,以便有用的时候可以参考。
呵呵,哈哈!!!
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import jav ......
一个Java接口(Interface)是一些方法特征的集合,这些方法特征当然来自于具体的方法,但是它们一般都来自于系统中不断出现的方法。一个接口只有方法的特征,而没有方法的实现,因此这些方法在不同的地方被实现时,可以有完全不同的行为。在Java语言的,Java接口还可以定义Public常量。 ......
JDK版本:jdk1.6.0_17
a. 下载安装包jdk-6u17-linux-i586-rpm.bin
b. cp jdk-6u17-linux-i586-rpm.bin /usr/local/
c. chmod a+x jdk-6u17-linux-i586-rpm.bin
d. sh jdk-6u17-linux-i586-rpm.bin 接受协议yes,安装完成
e. 设置环境变量
vi /etc/profile
加入下面内容:
#set java environment
JAVA_HOME=/ ......