JWindow 、JFrame 和 JDialog

    Swing中用于显示窗口的组件不外 3 个:JWindow 、JFrame 和 JDialog,它们分别扩展自 AWT 的对应组件。然而,只有 JDialog 可以是模态的,其它两个都无法实现模态。可是又只有 JWindow 可以没有标题栏,没有边框,就像 JToolTip 那样。

    这就带来一个问题,如果我们需要一个显示进度的组件,比如用来显示数据在后台的加载情况,在没有完全获得数据之前,不允许用户碰界面。那么,这个组件很自然应该是模态的,而且在它上面不应该提供其它的按钮。这样最好用 JWindow 来实现:把 JProgressBar 加到它里面就可以,可是 JWindow 不是模态的,无法阻止用户在数据加载完成之前去碰界面。我曾想用 JDialog 来代替 JWindow 来实现,可是它有标题栏,把进度条放进去很难看。

    要解决这个问题,现在有一个非常好的方法,就是用 JModalWindow 代替 JWindow。虽然 JModalWindow 提供有不指定 owner 的构建器,但要使模态窗口生效,必须在初始化的时候指定窗口的 owner。

    除了 JModalWindow,它还提供了 JModalDialog、JModalFrame、JSplashWindow 等几个很有用的组件。

    如果你在开发中也要用到模态窗口的话,JModalWindow会很有用的。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值