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

发布于 2024-10-07 11:52:11 字数 277 浏览 2 评论 0原文

我们正在将 LTSP 与瘦客户端结合使用。我们正在使用它来运行 Java-Swing-Application。用户不应该能够执行任何其他操作,因此我们使用 shell 脚本来启动应用程序,而不是 Gnome-Session。

几乎一切都很完美,但有一件事:当瘦客户端启动时,应用程序也会启动,但没有获得焦点。我们必须在应用程序内用鼠标单击一次,这不太好,因为该应用程序被设计为无需鼠标即可使用。

我没有发现任何有用的东西,我的主机上的 toFront() 没有成功。

有没有人有更好的建议??

We are using LTSP with Thin-Clients. We are using it, to run a Java-Swing-Application. The users should not be able to do anything else, so instead of a Gnome-Session we use a shell-script to start our application.

Nearly everything works perfect but one thing: When the Thin-Client starts, the application starts too but doesn't receive the focus. We have to click once with the mouse inside the application, which is not that good, because the application is designed to be used without a mouse.

I didn't found anything useful, a toFront() on my Main Frame wasn't successful.

Has anyone any better suggestions??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光病人 2024-10-14 11:52:11

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

You can use method java.awt.Window#setAlwaysOnTop(boolean) to grab the focus and after the first user interaction reset the alwayOnTop property.

很快妥协 2024-10-14 11:52:11

您可以尝试在 JFrame 可见时立即调用 requestFocus

JFrame frame = new JFrame();

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

frame.setVisible(true);

You could try to call requestFocus on your JFrame as soon as it becomes visible:

JFrame frame = new JFrame();

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

frame.setVisible(true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文