繁体   English   中英

有没有办法在在线编译器中创建JFrame?

[英]Is there a way to create a JFrame in an online compiler?

我已经使用NetBeans IDE 8.2创建Java程序已有一段时间了,并且没有遇到任何麻烦。 我试图找到一个允许我创建JFrame的在线编译器,但是我通常会收到错误消息:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)

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

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 DISPLAY变量使其在联机编译器上运行?

您可以在无头模式下运行Java:

java -Djava.awt.headless=true ...

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

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

System.setProperty("java.awt.headless", "true"); 

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

Repl.it允许您创建JFrame
看这里

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM