我在我的项目中使用JWindow来显示一个未修饰的UI,而且它也不会出现在任务栏中。但是,JWindow似乎总是在所有其他窗口的顶部。我尝试将setAlwaysOnTop设置为false,但似乎没有帮助。
以下是可以重现该问题的代码:
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似乎出现在任务栏中。
对于如何解决这个问题,有什么帮助吗?
发布于 2013-02-06 21:24:48
将窗口的可见性设置为True后,将其发送到后面,如下所示:
setVisible(true);
toBack();如果以后想要将它放在堆叠顺序的顶部,只需调用:
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()
https://stackoverflow.com/questions/14730119
复制相似问题