将JFrame始终置于顶部并禁用其后面的所有JFrame

时间:2016-07-29 12:47:41

标签: java swing jframe always-on-top

我的项目中有2个框架,1是我的主框架,第2个是只有单击按钮才能看到的框架。

  

单击按钮时显示jframe.class。

这是我执行按钮操作的代码

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       jframe jf = new jframe();
          jf.setVisible(true);
          jf.setAlwaysOnTop(true);
    }  

此代码有效,但问题是我希望主框架禁用或不可点亮,而第二帧是可见的...

我可以用相同的JOptionPane概念吗?

1 个答案:

答案 0 :(得分:6)

你基本上是在谈论一种模式。您应该使用JDialog并将模态设置为true,同时将JFrame作为参数传递:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
    myFrame = new JFrame("Hello World");
    modal = new JDialog(myFrame, "This is a modal!", true);
    modal.setVisible(true);
    modal.setLocationRelativeTo(null); //Center the modal
}

您可以在此处找到更多文档:

https://docs.oracle.com/javase/tutorial/uiswing/misc/modality.html