JavaFX-Application

JavaFX—Application

1.Application是JavaFX程序的入口,任何javafx应用程序程序都要继承该类并重写start()方法

public class TsetStage extends Application{
public void start(Stage primaryStage) throws Exception {
}
}

2.通过main()执行Application的launch(String str)方法,当然launch(String str)方法不传入任何值也是可以执行的.launch(String str)方法会默认执行本类下的init()、start()、stop()方法。执行下面的main()方法后显示顺序为:

这是初始化方法➡这是start()方法➡这是stop()方法➡这是main()方法。

可以看出只有当stop()方法(即Application应用程序被正常关闭)被调用时(也可以是图形界面右上角的❌被点击时),launch()方法才执行完毕。(通过Platform.exit()退出界面也是属于正常退出)

通过IDE控制台终止应用程序属于非正常终止,它是通过关闭JVM从而关闭应用程序的。

 1 import javafx.application.Application;
 2 public class TsetStage extends Application{
 3     public static void main(String[] args) {
 4         launch(args);//也可以写作launch()
 5         System.out.println("这是main方法");
 6 }
 7  @Override
 8        public void init(){
 9        System.out.println("这是初始化方法");
10     }
11     @Overrid
12     public void start(Stage primaryStage) throws Exception {
13     priamryStage.show();
14     System.out.println("这是start()方法");
15 }
16     @Override    
17     public void stop() throws Exception {
18         super.stop();
19         System.out.println("这个是stop()方法");
20 }
21 }    

3.也可以在其他类中的main()方法中调用launch()方法,但要传入相应的参数,第一个参数指定一个Application的子类从而调用该类下的init()、start()、stop()方法,第二个参数制定一个String类型的值。

当然同上一个launch(String str)方法,该launch(? extends Application,String str)也可以不指定String类型的值。

import javafx.application.Application
public class TestStage2{
public static void main(String args[]){
Application.launch(TestStage.class,args);//也可以写作Application.luanch(TestStage.class)
}
}

4.Application类下的getHostServices()方法,该方法返回一个HostServices实例,该实例的showDocument()方法可以指定一个网站地址或者URI

从而以系统默认的浏览器打开该URI。geDocumentBase()返回一个String类型的当前文档所在的路径。

import javafx.application.Application;
import javafx.application.HostServices;
public class TsetStage extends Application{
    public static void main(String[] args) {
        launch(args);
}
 @Override
    public void start(Stage primaryStage) throws Exception {
    HostServices hostServices = getHostServices();
    hostServices.showDocument("www.baidu.com");
    System.out.println(hostServices.getDocumentBase());
}
}

另外线程方面,执行main()方法时是主线程,当调用init()方法时是JavaFX-Launcher线程,当调用start()方法时是JavaFX Application Thread线程,当调用stop()方法时依然是JavaFX Application Thread线程

 

转载于:https://www.cnblogs.com/yanquebbuyan/p/9966487.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值