首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kura上的java swing GUI

kura上的java swing GUI
EN

Stack Overflow用户
提问于 2016-05-02 08:47:13
回答 1查看 258关注 0票数 0

我需要帮助在库拉创建一个显示Swing的GUI的包。我正在使用Java和OSGI创建包。我在raspberryPI上运行它。

我将这段代码放入包的激活器中:

代码语言:javascript
复制
public void activate(ComponentContext componentContext, Map<String,Object> properties)
{
    System.out.println("Sono AstroGUI!!!!");

    Runnable runnable = new Runnable() {
          public void run() {
        createAndShow();
          }
        };
        SwingUtilities.invokeLater(runnable);
}

 static void createAndShow() {


    JFrame frame = new JFrame("Hello World");
    frame.setSize(640,480);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }

但是,当我上传包时,系统会返回以下错误:

线程“AWT 0”java.awt.HeadlessException中的异常:没有设置X11显示变量,但该程序执行了需要它的操作。java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207) at java.awt.Window.(Window.java:536) at java.awt.Frame.(Frame.java:420) at javax.swing.JFrame.(JFrame.java:225) at com.riccardofontanini.astrogui.AstroGUIActivator.createAndShow(AstroGUIActivator.java:56) at com.riccardofontanini.astrogui.AstroGUIActivator$1.run(AstroGUIActivator.java:47) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744) at java.awt.EventQueue.access$400(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.awt.EventQueue$3.run(EventQueue.java:691) at java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue )。java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2016-05-02 21:22:01

当然,按照前面的建议,一定要正确地设置X11。您还可以尝试编辑Kura的启动脚本,以确保在Kura启动时X已经准备就绪。启动脚本位于/opt/eclipse/kura/bin中。库在引导时使用的默认脚本是start_kura_background.sh。编辑此文件并添加以下行:

代码语言:javascript
复制
if ! xset q &>/dev/null; then
    echo “Starting X Server...”
    su -s /bin/bash -c xinit root& export DISPLAY=:0
    echo “X Server started !”
else
    echo “X Server already running, DISPLAY variable setted”

另外,您使用的是什么版本的Java?我只在一个完整的Oracle JRE上看到了这一工作。我还没有在OpenJDK上尝试过Eclipse + Swing,它也不会在上工作。

谢谢,

--戴夫

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

https://stackoverflow.com/questions/36978449

复制
相关文章

相似问题

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