站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题弱弱的问一个java界面方面的问题?

弱弱的问一个java界面方面的问题?

摘要: 弱弱的问一个java界面方面的问题?


为什么我做的程序,在主界面中新弹出一个窗口后,只要是按CTRL+TAB(或其他方式)切换一下界面,在切换回来的时候,看到的就只是主界面了,那个窗口只能只能在切换窗口中在找回来,郁闷中,不知如何设置才可以不这样?不知我说清楚了没有,谢谢!


贴出代码帮你分析


那个窗口是主界面(该父类应该是Frame或JFrame)的模式窗口,其父类是Dialog或者JDialog,如果你想要这个模式窗口显示在前面,最好是也使用JFrame或者Frame来做


DialogTest dlg = new DialogTest();
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(false);
dlg.pack();
dlg.show();


代码如上,Dialog是一个没有什么设置的及普通的对话框。


把模式设置为true:
dlg.setModal(true);





seu_cose(冷圣子)说的对,就是用模态
可以很好的解决。
xx.setModal(true);



楼上说的不错,将模式设置为true
如果lz不觉得烦的话,我建议写一个单独的类extends JDialog/Dialog
如:
public class A extends JDialog {
public A(JFrame f) {
super(f, -#34;XXXXXXX-#34;, true);
view();
}
public void view() {
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(false);//这句除去
dlg.pack();
dlg.show();
}
然后在主界面的那个类里调用这个类的构造方法
A a=new A(this);
PS:本人菜鸟一个,还请教各位老鸟们。嘿嘿。。


改成.setModal(true);依然不行,大家真的没有发现这样的现象吗?奇怪了。

只要大家在程序启动之后,打开一个这样的窗口,用鼠标在任务栏上点两下该程序的图标,新打开的窗口就不见了,只能切换到其他运行着的程序的页面,再切回来才行,不知为何?


给dialog传递一个父窗口。


↑返回目录
前一篇: 如何控制程序只启动一次
后一篇: 替换{$h1}问题