java中子窗口限制父窗口问题
来源:百度知道 编辑:UC知道 时间:2024/05/12 07:20:27
请高手指点。。。。
请大家说详细点 。。我给追加分
楼主问为什么使用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);