| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:我想不通的小问题,哪位好心人来看看
只看楼主 加入收藏
夜风
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-10-16
收藏
 问题点数:0 回复次数:8 
我想不通的小问题,哪位好心人来看看

我做了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一样有模的窗体??

搜索更多相关主题的帖子: package public import 
2006-06-20 09:01
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
JInternalFrame 没用过 要有模的窗体好象只有用 JDialog

从你代码看是 当窗体关闭时才打印出"22222'的 而不是运行的时候就打"22222"的

子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-06-20 10:02
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

要想生成有模的窗体,请用JDialog就可以了


可惜不是你,陪我到最后
2006-06-20 10:04
夜风
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-10-16
收藏
得分:0 

我仔细看了的 !!关闭的时候没有打出“22222”
那段监听程序就根本没运行

我没想通!!!


我永远都是是新人!知识是学不完的!希望大家多照顾点!!!
2006-06-20 10:32
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
首先你没有把完整的代码帖出来
然后如果你想要实现模态的话,最好是用JDialog,它能很方便的让你实现模态

可惜不是你,陪我到最后
2006-06-20 10:34
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
你换个方法试试
addInternalFrameListener(InternalFrameListener l))
添加指定的侦听器,以从此内部窗体接收内部窗体事件。

[此贴子已经被作者于2006-6-20 20:58:37编辑过]


子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-06-20 12:12
夜风
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-10-16
收藏
得分:0 

我自己发现了。原来是点窗体上的X就可以执行,但是如果是用方法dispose();关闭则不执行
原因是:internalFrameClosing是执行内部窗体的默认 close 操作所指定的操作。 我用的解决方法是不调用dispose()方法关闭窗体,用窗体的doDefaultCloseAction();就可以,,,
呵呵,,我昨天花了1个小时都没搞清楚的问题,在今天学校退了我几百钱的情况几分钟就有感觉能解决了,看来学JAVA技术真贵

我永远都是是新人!知识是学不完的!希望大家多照顾点!!!
2006-06-21 22:58
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
不错 自己能发现问题出在哪很好

子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-06-21 23:12
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用夜风在2006-6-21 22:58:10的发言:

我自己发现了。原来是点窗体上的X就可以执行,但是如果是用方法dispose();关闭则不执行
原因是:internalFrameClosing是执行内部窗体的默认 close 操作所指定的操作。 我用的解决方法是不调用dispose()方法关闭窗体,用窗体的doDefaultCloseAction();就可以,,,
呵呵,,我昨天花了1个小时都没搞清楚的问题,在今天学校退了我几百钱的情况几分钟就有感觉能解决了,看来学JAVA技术真贵

学程序就需要这种自己去钻研的精神
这样学来的东西才永远不会忘记
因为这是自己经过苦思冥想才得来的
不错


可惜不是你,陪我到最后
2006-06-22 10:15
快速回复:我想不通的小问题,哪位好心人来看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041281 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved