首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止JWindow显示在所有窗口的顶部

阻止JWindow显示在所有窗口的顶部
EN

Stack Overflow用户
提问于 2013-02-06 21:21:01
回答 1查看 252关注 0票数 1

我在我的项目中使用JWindow来显示一个未修饰的UI,而且它也不会出现在任务栏中。但是,JWindow似乎总是在所有其他窗口的顶部。我尝试将setAlwaysOnTop设置为false,但似乎没有帮助。

以下是可以重现该问题的代码:

代码语言:javascript
复制
package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JWindow;

public class Test extends JWindow implements ActionListener {

    public Test() {
        setSize(300, 300);
        setLocationRelativeTo(null);
        setAlwaysOnTop(false);

        JButton myButton = new JButton("Click Here");
        myButton.addActionListener(this);
        getContentPane().add(myButton);

        setVisible(true);
    }

    public static void main(String[] args) {
        new Test();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals("Click Here"))
            JOptionPane.showMessageDialog(this, "This dialog box appears behind the JWindow!");
    }
}

我的操作系统是Linux,我使用的是Oracle JDK6。此外,当我在Windows上测试我的应用程序时,我使用JDialog作为UI,它工作得很好。但是,在Linux中,JDialog似乎出现在任务栏中。

对于如何解决这个问题,有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-06 21:24:48

将窗口的可见性设置为True后,将其发送到后面,如下所示:

代码语言:javascript
复制
setVisible(true);
toBack();

如果以后想要将它放在堆叠顺序的顶部,只需调用:

代码语言:javascript
复制
toFront();

更多详细信息请点击此处:

http://docs.oracle.com/javase/6/docs/api/java/awt/Window.html#toBack()

http://docs.oracle.com/javase/6/docs/api/java/awt/Window.html#toFront()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14730119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档