Простейшая программа, использующая JFrame, не работает - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь кое-что узнать о том, как разместить графику в моем приложении, но у меня есть некоторые проблемы. Я только что создал JFrame, установил размер, установил видимость на true, но он просто ничего не показывает. Вот мой код

package app;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class mainClass{

    public static void main(String[] args) {

        JFrame jimage = new JFrame();
        jimage.setSize(600, 400);
        jimage.setTitle("Prova JFrame");
        jimage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jimage.setVisible(true);

    }

}

Помогите пожалуйста: /

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Решено! В моих конфигурациях запуска мне пришлось снять флажок «-XStartOnFirstThread при запуске с SWT» на вкладке «Аргументы». Надежда может кому-то помочь!

0 голосов
/ 29 апреля 2020

Я сделал несколько изменений. Этот код отлично работает на моем Windows 10, Java 13 JDK, Java 8 уровне компиляции.

Порядок, в котором вы вызываете методы JFrame, имеет решающее значение. Это порядок, который я всегда использую.

Сохраните этот код. Вот как вы начинаете Свинг GUI.

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class SimpleJFrame implements Runnable {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new SimpleJFrame());
    }

    @Override
    public void run() {
        JFrame jimage = new JFrame();
        jimage.setTitle("Prova JFrame");
        jimage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        jimage.setSize(600, 400);
        jimage.setLocationByPlatform(true);
        jimage.setVisible(true);
    }

}
...