Есть ли способ создать JFrame в онлайн-компиляторе? - PullRequest
0 голосов
/ 02 мая 2019

Я некоторое время использовал IDE NetBeans 8.2 для создания программ на Java, и у меня не было проблем с этим. Я пытался найти онлайн-компилятор, который позволил бы мне создать JFrame, но обычно я получаю сообщение об ошибке "1001" *

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, чтобы она работала на онлайн-компиляторе?

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Repl.it позволяет создавать JFrames
Смотрите здесь

enter image description here

1 голос
/ 02 мая 2019

Вы можете запускать Java в режиме без головы :

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

Примеры использования: модульное тестирование, графические операции на стороне сервера.

Вы также можете установить его программно (необходимо установить перед выполнением любых вызовов AWT, требующих отображения):

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

См .: https://www.oracle.com/technetwork/articles/javase/headless-136834.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...