Инициализация JFrame - PullRequest
       2

Инициализация JFrame

2 голосов
/ 26 марта 2011

Это, наверное, простой вопрос, но эй, я новичок.

Итак, я создал программу, которая рассчитывает некоторые вещи, и она в данный момент работает в консоли. Я решил добавить к нему пользовательский интерфейс, поэтому я создал JForm, используя встроенные функции в IDE NetBeans (вероятно, это временно, пока я не научусь обрабатывать Swing вручную, у меня есть крайний срок, поэтому я хочу закончить его быстро) из нескольких элементов управления и контейнеров. Теперь, когда форма готова, как ее инициализировать? Насколько я знаю, мне нужно как-то вызвать класс из Main.java, правильно? Я пытался просто сделать: GUI GUI = новый GUI (); (класс называется GUI), но это ничего не делает. Если я оставлю это поле пустым, он сделает то же самое. Или это предполагается для инициализации себя?

Спасибо.

Ответы [ 5 ]

6 голосов
/ 26 марта 2011
GUI gui = new GUI(); 
gui.setVisible(true);
2 голосов
/ 26 марта 2011

ИМХО рекомендуемый способ сделать это (используя поток рассылки событий и простой анонимный класс):

// effectively the same as SwingUtilities.invokeLater
EventQueue.invokeLater(new Runnable()
{
    public void run()
    {
        JFrame frame = new GUI(); // GUI gui = new GUI() as well
        // default value JFrame.HIDE_ON_CLOSE
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setVisible(true);
    }
});

Из Java API http://download.oracle.com/javase/6/docs/api/javax/swing/package-summary.html#threading:

"В общем, Swing не безопасен для потоков. Все компоненты Swing и связанные с ними классы, если не указано иное, должны быть доступны на мероприятии диспетчерская нить. "

Вы можете использовать SwingUtilities.invokeLater или EventQueue.invokeLater с таким же результатом, т.е. метод SwingUtilities.invokeLater просто вызывает метод EventQueue.invokeLater.

Дополнительная информация на Учебное пособие по Java (особенно зачем использовать этот JFrame.EXIT_ON_CLOSE).

0 голосов
/ 02 мая 2019

Вот простейший пример создания JFrame:

JFrame myFrame = new JFrame("");
frame.setTitle("Welecome to JFames!");
frame.setSize(600, 400);
frame.setVisible(true);

Команда frame.setTitle("text"); изменит заголовок кадра.

Команда setVisible(boolean) сделает его видимым, потому что этоскрыт

Команда setSize(int, int) изменит размер фрейма.

Для других примеров JFrame посмотрите, например: https://javatutorial.net/swing-jframe-basics-create-jframe

0 голосов
/ 09 марта 2015

Приведенный выше ответ «инициализировать область действия класса с помощью setTitle (« Ваш заголовок »);говорит, как установить заголовок окна для jframe.

0 голосов
/ 09 марта 2015

инициализировать область видимости с помощью setTitle ("Ваш заголовок");

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