当前位置: 技术问答>java相关
如何解决applet中弹出的Dialog的问题?
来源: 互联网 发布时间:2015-07-31
本文导语: 在applet中,现在需要弹出一个自定义的输入框。 弹出现在没有问题。问题主要是,在此Dialog弹出后,如果此时让该applet所在浏览器失去焦点,即在任务栏点击其他窗口,而后再回到applet窗口时,发现Dialog已经不再显...
在applet中,现在需要弹出一个自定义的输入框。
弹出现在没有问题。问题主要是,在此Dialog弹出后,如果此时让该applet所在浏览器失去焦点,即在任务栏点击其他窗口,而后再回到applet窗口时,发现Dialog已经不再显示了,而且使用show()方法也无法显示。
为什么? 有哪位能指点一二。
非常感谢。
弹出现在没有问题。问题主要是,在此Dialog弹出后,如果此时让该applet所在浏览器失去焦点,即在任务栏点击其他窗口,而后再回到applet窗口时,发现Dialog已经不再显示了,而且使用show()方法也无法显示。
为什么? 有哪位能指点一二。
非常感谢。
|
这是因为你的对话框没有设定owner所致。
在你创建你的Dialog的时候应该可以使用这个构造方法:
Dialog(Frame owner, boolean modal)
设置Dialog的owner可以使用以下的方法:
private static Frame getWindowForComponent(Component parentComponent) {
if (parentComponent instanceof Frame)
return (Frame)parentComponent;
return getWindowForComponent(parentComponent.getParent());
}
// 显示对话框
Frame frame = getWindowForComponent(this);
Dialog1 d1 = new Dialog1(frame, "", false);
d1.setSize(400, 300);
d1.show();
在你创建你的Dialog的时候应该可以使用这个构造方法:
Dialog(Frame owner, boolean modal)
设置Dialog的owner可以使用以下的方法:
private static Frame getWindowForComponent(Component parentComponent) {
if (parentComponent instanceof Frame)
return (Frame)parentComponent;
return getWindowForComponent(parentComponent.getParent());
}
// 显示对话框
Frame frame = getWindowForComponent(this);
Dialog1 d1 = new Dialog1(frame, "", false);
d1.setSize(400, 300);
d1.show();