В окне приложения Swing не отображаются изменения

Я делаю 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");
    }

}

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

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

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

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

4 ответа

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

1. Установите заголовок, используя метод setFitle() JFrame: 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);
}

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

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

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

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

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

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

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

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

frame.repaint();
frame.revalidate();
Другие вопросы по тегам