В окне приложения Swing не отображаются изменения - PullRequest
0 голосов
/ 13 февраля 2019

Я делаю проект Java, используя eclipse и плагин windowbuilder.После завершения логики я создал окно приложения и выполнил проект, все в порядке.Но теперь я хочу изменить окно, поэтому я изменил название, например.В визуальном представлении я вижу эти изменения, но когда я запускаю приложение, изменений нет, это всегда одно и то же окно.Это код:

public class Application {

    private JFrame frame;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Application window = new Application();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Application() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("My Application");
    }

}

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

РЕДАКТИРОВАТЬ: я добавляю несколько изображений, чтобы показать, в чем проблема

Окно, когда я выполняю:

Window when i execute

Окно в построителе окон:

Window in windowbuilder

Ответы [ 4 ]

0 голосов
/ 14 февраля 2019

Я думаю, что вы должны удалить ваш свинг и установить его снова.Потому что любое решение не работает, и нет другой причины не делать этого.Просто попробуйте переустановить качели.

0 голосов
/ 13 февраля 2019

Пожалуйста, попробуйте это:

               try {
                    Application window = new Application();
                    window.frame.setVisible(true);
                    window.frame.setTitle("My Application");
                } catch (Exception e) {
                    e.printStackTrace();

И дайте мне знать результат.

Редактировать: удалить setTitle () из метода инициализации.

Редактировать: Если выновичка вы можете попробовать JavaFX.Он также прост, как Java Swing, но имеет больше возможностей, лучших вариантов дизайна и прочего.Это то, с чем я пробовал, когда начал изучать Java.

0 голосов
/ 13 февраля 2019

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

1. Установить заголовок, используя метод JFrame setTitle (): frame.setTitle("My Application");

2. Установить заголовок, используя конструктор JFrame (String Title): frame = new JFrame("My Application");

По моему мнению, оба способа работают, чтобы установить заголовок, но, тем не менее, если вы боретесь с первым вариантом, вы можете попробовать второй вариант.Может быть, этот код работает для вас.

private void initialize() {
    frame = new JFrame("My Application");
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
0 голосов
/ 13 февраля 2019

После изменения настроек перейдите на frame.dispose()

и после этого Вы можете

frame.repaint();
frame.revalidate();
...