如何在显示JFrame后执行某些操作

时间:2016-04-02 09:53:22

标签: java user-interface jframe

我有这个GUI应用程序,我想在用户打开应用程序时,在显示GUI之后立即执行自定义操作。

所以,我将对该动作的调用放入JFrame的public Main()中,如下所示:

public Main() {
    initComponents();
    ExecuteAfter();
}

其中ExecuteAfter()是包含要执行的操作或操作的方法。

这很好,但不是我想要的方式。这样,在显示JFrame之前,即在应用程序窗口出现在屏幕之前,动作始终执行。我想要的是仅在显示JFrame之后执行操作,即在应用程序窗口出现在屏幕上之后。

我尝试将调用放入public static void main(String args[]),因为创建并显示JFrame的位置。但是不起作用,因为该方法不是静态的,我不能把静态的方法放在那里,因为它使用了已经由IDE初始化为非静态的JFrame的一些组件。

所以,问题是:我需要在屏幕上显示JFrame后执行操作调用吗?或者还有其他方法吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

我使用WindowListener并解决了问题。

我没有将调用放在构造函数public Main()或主public static void main(String args[])中,而是无法完成,我配置了WindowsListener来进行调用。像那样:

private void formWindowOpened(java.awt.event.WindowEvent evt) {
    ExecuteAfter();
}

以我想要的方式完美运作。

感谢@MadProgrammer提供的建议。

答案 1 :(得分:0)

如果我理解你的问题,我会对我的项目使用类似的案例。我需要在JFrame显示时启动计时器,所以这就是我这样做的方式。

所以我使用2个方法和1个构造函数。第一种方法(exp。名称:准备GUI),在这里你可以添加所有认为你需要创建JFrame,JPanel ....以及我在构造函数中调用的方法。在第二种方法(exp.Name:start GUI)中,您将所有组件添加到JPanel / s,JPanel / s添加到JFrame,并设置JFrame visible =(true),然后添加您的方法ExecuteAfter()。您需要在main方法中调用的第二种方法(准备GUI)。我希望这会对你有所帮助。