首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以在在线编译器中创建JFrame?

有没有一种方法可以在在线编译器中创建JFrame?
EN

Stack Overflow用户
提问于 2019-05-02 21:35:10
回答 2查看 7.1K关注 0票数 2

我使用JavaIDE8.2创建NetBeans程序已经有一段时间了,并且没有遇到任何问题。我试图找到一个可以让我创建JFrame的在线编译器,但我通常会得到这样的错误信息

代码语言:javascript
复制
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)

我尝试了几种不同的在线编译器,并研究了X11显示,但我没有发现任何有用的东西。

代码语言:javascript
复制
import java.awt.Canvas;
import javax.swing.JFrame;

public class Main {

    public static JFrame frame;
    public static Canvas canvas;

    public static void main(String[] args) {
        createDisplay("Display", 500, 500);
    }

    public static void createDisplay(String title, int w, int h) {
        frame = new JFrame(title);
        frame.setSize(w, h);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(true);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        canvas = new Canvas();
        canvas.setSize(w, h);
        canvas.setFocusable(false);

        frame.add(canvas);
        frame.pack();
    }
}

有没有一种方法可以设置X11显示变量,使其在在线编译器上工作?

EN

回答 2

Stack Overflow用户

发布于 2019-05-02 23:40:54

Repl.it允许您创建JFrames

See here

票数 7
EN

Stack Overflow用户

发布于 2019-05-02 21:53:59

您可以在无头模式中运行Java

代码语言:javascript
复制
java -Djava.awt.headless=true ...

用例:单元测试,服务器端图形操作。

您也可以通过编程方式设置它(必须在执行任何需要显示的AWT调用之前设置):

代码语言:javascript
复制
System.setProperty("java.awt.headless", "true"); 

请参阅:https://www.oracle.com/technetwork/articles/javase/headless-136834.html

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

https://stackoverflow.com/questions/55953691

复制
相关文章

相似问题

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