Swing应用程序窗口未显示更改

时间:2019-02-13 09:35:58

标签: java eclipse swing windowbuilder

我正在使用eclipse和windowbuilder插件制作Java proyect。完成逻辑后,我创建了“应用程序窗口”并执行项目,一切都很好。但是现在我想修改窗口,因此例如更改标题。在可视视图中,我可以看到这些更改,但是当我执行该应用程序时,没有任何更改,它始终是同一窗口。这是代码:

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");
    }

}

我刚刚添加了一行,所以我不知道这可能是错的。我也想知道这是制作gui应用程序的最佳方法(使用“应用程序窗口”)还是有更好的方法。

编辑:我添加了一些图像来显示问题所在

我执行时的窗口:

Window when i execute

windowbuilder中的窗口:

Window in windowbuilder

4 个答案:

答案 0 :(得分:1)

您可以使用两种方法设置标题:

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);
}

答案 1 :(得分:0)

设置更改后,转到frame.dispose()

然后您可以

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

答案 2 :(得分:0)

请尝试以下操作:

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

让我知道结果。

编辑:    从初始化方法中删除setTitle()。

编辑:    如果您是初学者,可以尝试JavaFX。它与Java Swing一样简单,但是具有更多潜力,更好的设计选项和功能。开始学习Java时,我曾尝试过这种方法。

答案 3 :(得分:0)

我认为您应该删除秋千,然后重新安装。因为任何解决方案都行不通,并且没有其他理由不这样做。只需尝试重新安装swing。