我做了1个窗体继承JInternalFrame ,(用A表示)代码大概如下
package A;
public class A extends JInternalFrame implements ActionListener,AncestorListener{
public A(){......}
}
另做了一个是主窗体(用B表示)
***我想实现的功能是在B中能对A这个内部窗体被关掉时做出响应 ****
大致是这样写
import A.*;
import javax.swing.event.*;
public class B extends JFrame{
public b(){
Login l=new Login();
l.addInternalFrameListener(new InternalFrameAdapter(){
public void internalFrameClosing(InternalFrameEvent e) //当内部窗体正被关闭时调用。
{ System.out.print("222222"); }
});
}
public static void main(String arg[]){new b();}
}
编译是通过了 ,运行没异常,但是就是没反映!什么事情也不发生!不能输出“222222222”
请问问哪位好心人指点指点,主会祝福你们的!!!我很急!!!在线等。。。。。。。
顺便问下如何把JInternalFrame 做成像VB一样有模的窗体??
----------------解决方案--------------------------------------------------------
JInternalFrame 没用过 要有模的窗体好象只有用 JDialog
从你代码看是 当窗体关闭时才打印出"22222'的 而不是运行的时候就打"22222"的
----------------解决方案--------------------------------------------------------
要想生成有模的窗体,请用JDialog就可以了
----------------解决方案--------------------------------------------------------
我仔细看了的 !!关闭的时候没有打出“22222”
那段监听程序就根本没运行
我没想通!!!
----------------解决方案--------------------------------------------------------
首先你没有把完整的代码帖出来
然后如果你想要实现模态的话,最好是用JDialog,它能很方便的让你实现模态
----------------解决方案--------------------------------------------------------
你换个方法试试
addInternalFrameListener(InternalFrameListener l))
添加指定的侦听器,以从此内部窗体接收内部窗体事件。
[此贴子已经被作者于2006-6-20 20:58:37编辑过]
----------------解决方案--------------------------------------------------------
我自己发现了。原来是点窗体上的X就可以执行,但是如果是用方法dispose();关闭则不执行
原因是:internalFrameClosing是执行内部窗体的默认 close 操作所指定的操作。 我用的解决方法是不调用dispose()方法关闭窗体,用窗体的doDefaultCloseAction();就可以,,,
呵呵,,我昨天花了1个小时都没搞清楚的问题,在今天学校退了我几百钱的情况几分钟就有感觉能解决了,看来学JAVA技术真贵
----------------解决方案--------------------------------------------------------
不错 自己能发现问题出在哪很好
----------------解决方案--------------------------------------------------------
我自己发现了。原来是点窗体上的X就可以执行,但是如果是用方法dispose();关闭则不执行
原因是:internalFrameClosing是执行内部窗体的默认 close 操作所指定的操作。 我用的解决方法是不调用dispose()方法关闭窗体,用窗体的doDefaultCloseAction();就可以,,,
呵呵,,我昨天花了1个小时都没搞清楚的问题,在今天学校退了我几百钱的情况几分钟就有感觉能解决了,看来学JAVA技术真贵
学程序就需要这种自己去钻研的精神
这样学来的东西才永远不会忘记
因为这是自己经过苦思冥想才得来的
不错
----------------解决方案--------------------------------------------------------