java中子窗口限制父窗口问题

就是当我们打开记事本的“关于”时候。只能关闭“关于”以后才能用记事本。。那我们在java中,弹出窗体怎么能这样限制呢?这里说的窗体不dialog弹出对话框。请高手指点。。... 就是当我们打开记事本的“关于”时候。 只能关闭“关于”以后才能用记事本。。那我们在java中,弹出窗体怎么能这样限制呢?这里说的窗体不dialog弹出对话框。
请高手指点。。。。
请大家说详细点 。。我给追加分
展开
 我来答
horiway
2009-07-01 · TA获得超过510个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:105万
展开全部
楼主问为什么使用Dialog创建模式窗口,我的回答如下:
首先我们先看下在操作系统中是如何创建窗口的,这是WIN32 API:
invoke CreateWindowEx,dwExStyle,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam
对于一个普通的窗口,其中hMenu是指要出现的菜单的句柄,然后————当建立的窗口是子窗口时,这个参数是另一个含义,这时hMenu参数指定的是子窗口的ID号,那么结果是————节省一个参数的位置,同时子窗口也不会有菜单了。所以要想子窗口有菜单只有微软自己可以做到了。
回到模式窗口的问题上来,模式窗口是子窗口,所以不会有菜单,那为什么只能用Dialog创建模式窗口呢,这是JAVA设计是确定的,即使开放了Frame的setModal,也没用,因为得到的结果还是一个和Dialog没有区别的窗口,这种情况在其它语言里是存在的。

import java.awt.*;
import java.awt.event.*;

public class TestDialog {

public TestDialog() {
final Frame f1 = new Frame("1");
f1.setSize(500, 500);
f1.setVisible(true);

Button b = new Button("Exit");
TextArea jt = new TextArea(3, 0);
b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});

Dialog dlinf1 = new Dialog(f1, "这是为了100分特地做的一段代码");
dlinf1.setSize(300, 300);
dlinf1.add(b, "North");
dlinf1.add(jt,"Center");
dlinf1.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {
System.exit(1);
}
});
dlinf1.setModal(true);
dlinf1.setVisible(true);

}

public static void main(String[] args) {
new TestDialog();
}
}
百度网友0c3258b02
2009-06-29 · TA获得超过672个赞
知道小有建树答主
回答量:550
采纳率:0%
帮助的人:625万
展开全部
model dialog就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Salever
2009-06-28 · TA获得超过240个赞
知道小有建树答主
回答量:537
采纳率:100%
帮助的人:414万
展开全部
设置层次关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zskzhao
2009-06-28 · TA获得超过346个赞
知道小有建树答主
回答量:852
采纳率:0%
帮助的人:402万
展开全部
有个方法可以让当前窗口总是在最前的,
好像是...SetOn,想不起来了,你看看API就能找到.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式