rt,需要弹出窗口设置一个值,该值不能为空,但是弹出窗口如果用“X”退出,则不能保证值的有效性,所以有必要将“X”屏蔽掉,请各位大大帮忙,谢谢。

解决方案 »

  1.   

    没有很简单的方案,可以考虑把整个外框给去掉(标题栏 和 X 都会被干掉):
      setUndecorated(true);另一个稍微恶心点点的方法,是让X失效(但是会显示出来,用户会比较纳闷):
      setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); 
      

  2.   

    倒原来你说的是Web的模态窗口。这个没有绝对可靠的解决方案,因为不同浏览器处理方式不同了,三种建议:
    1、主窗口对于关键录入控件没有值的,红框提示,并不允许提交页面;(也就是用户可以关闭模态窗口,但这样因为主窗口没有得到关键录入信息,就不允许提交表单了,用户可以自行重复打开录入窗口)
    2、主窗口如果发现模态窗口返回结果是空,就立即重新打开模态窗口,并提示必须录入;
    3、用jQuery之类工具提供的 仿模态窗口,可以实现隐藏[X]。其实我个人偏好 1,因为这个符合“不强迫用户”的原则。