将应用程序焦点设置为Ubuntu / LTSP中的java程序

时间:2010-12-14 10:54:12

标签: swing ubuntu-10.04

我们将LTSP与瘦客户端一起使用。我们正在使用它来运行Java-Swing-Application。用户不应该做任何其他事情,因此我们使用shell脚本来启动应用程序而不是Gnome-Session。

几乎所有东西都运行得很完美但有一件事:当瘦客户端启动时,应用程序也会启动,但不会获得焦点。我们必须在应用程序中单击鼠标一次,这不是那么好,因为应用程序的设计是在没有鼠标的情况下使用。

我没有找到任何有用的东西,我的主框架上的toFront()没有成功。

有没有人有更好的建议?

2 个答案:

答案 0 :(得分:1)

您可以使用方法java.awt.Window#setAlwaysOnTop(boolean)获取焦点,并在第一次用户互动后重置alwayOnTop属性。

答案 1 :(得分:0)

您可以尝试在JFrame上看到requestFocus后立即显示:

JFrame frame = new JFrame();

frame.addComponentListener(new ComponentAdapter() {
        public void componentShown(ComponentEvent e) {
            ((JFrame) e.getSource()).requestFocus();
        }
    });

frame.setVisible(true);