Проблема визуализации простого графического интерфейса в Java

1

Я сделал очень простой графический интерфейс на Java, но когда я запускаю программу, GUI действует странно!

Как только я запустил приложение: графический интерфейс выглядит следующим образом:

Изображение 174551

Как только я просто минимизирую его и верну его, он показывает, что это так:

Изображение 174551

Это очень простой код:

public class Prova2 {

public static void main(String[] args) {

    JFrame frame = new JFrame("A Simple GUI");
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(650, 120);
    frame.setLocation(430, 100);

    JPanel panel = new JPanel();
    frame.add(panel);

    JLabel lbl = new JLabel("Select one of the possible choices and click OK");;
    lbl.setVisible(true);   
    panel.add(lbl);

    String[] choices = { "CHOICE 1","CHOICE 2", "CHOICE 3","CHOICE 4","CHOICE 5","CHOICE 6"};
    JComboBox<String> cb = new JComboBox<String>(choices);
    cb.setVisible(true);
    panel.add(cb);

    JButton btn = new JButton("OK");
    panel.add(btn);
  }
}

Что мне не хватает, чтобы показать тонкий графический интерфейс (со всем его элементом), как только я запустил приложение?

Это раздражает необходимость минимизировать или изменить размер окна, чтобы правильно показать графический интерфейс!

Теги:
jframe

2 ответа

1
Лучший ответ

Я тестировал ваш код, и проблема заключается в том, что вы устанавливаете видимость на true прежде чем создавать элементы внутри своего JFrame. Так что просто вырезаем frame.setVisible(true); и вставьте его в качестве последней строки конструктора.

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

0
  1. Использовать менеджер компоновки

  2. Следуйте основному принципу Swing Toolkit: весь пользовательский интерфейс должен управляться и запускаться по потоку EDT (поток пользовательского интерфейса). Вот очень хорошее объяснение. Http://www.pushing-pixels.org/2007/12/06/unwritten-rule-of-working-with-swings-edt.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню