我在我的项目中使用 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 JDK 6。此外,当我在 Windows 上测试我的应用程序时,我使用 JDialog 作为 UI,它运行良好。但是,在 Linux 中 JDialog 似乎出现在任务栏中。
关于如何解决这个问题的任何帮助?