java学习2-javafx写GUI程序1

使用eclipse开发javafx,需要安装java8以上版本,下载scene builder 制作FXML文件。

新建package

HelloJava.java是main函数所在类。起到调度作用

Test.java是和study.fxml配合的事件处理的类。

study.fxml是界面文件。使用scene builder制作。

HelloJava.java:

package HelloFX;
import javafx.application.Application;  
import javafx.fxml.FXMLLoader;  
import javafx.scene.Parent;  
import javafx.scene.Scene;  
import javafx.stage.Stage;  
import javafx.stage.StageStyle;  
  
public class HelloJavaFX extends Application {  
  
    public static void main(String[] args) {  
        Application.launch(HelloJavaFX.class, args);  
    }  
      
    @Override  
    public void start(Stage stage) throws Exception {  
        Parent root = FXMLLoader.load(getClass().getResource("study.fxml"));  
  
        Scene scene = new Scene(root, 600, 400);  
        stage.initStyle(StageStyle.DECORATED);  
        stage.setScene(scene);  
        stage.setTitle("JavaFX测试");  
        stage.show();  
    }  
  
}  

study.fxml如下:

查看上面的study.xml,你就可以看到根节点有一个fx:controller属性。这个属性就是指定事件处理的类。比如我们现在应用程序中处理事件的类为Test.java。那么就修改fx:controller = "HelloFX.Test" 前面的是包名。
 

Test.java,处理了2个按钮事件。注意:@FXML 注释必须存在。否则编译出错。

package HelloFX;
import java.io.File;
import javax.swing.JOptionPane;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Scene;  
import javafx.scene.control.TextArea;
import javafx.scene.layout.AnchorPane;
import javafx.stage.FileChooser;
 
public class Test {
    @FXML
    private void onActButton2(ActionEvent event) {
        System.exit(0);
    }
    
    @FXML
    private void onActButton1(ActionEvent event) {
        JOptionPane.showMessageDialog(null, "JavaFX记事本是一款使用JavaFX开发的记事本。" ,"关于",  JOptionPane.PLAIN_MESSAGE);
    }
    

}

===========================下面列出java的gui开发的4种方法比较================

Java中进行界面GUI开发,总共有四种方式。

  • Awt
    Awt是最早开发的界面库,为了满足跨平台的需要,达到“一次编写多处运行”的效果。在不同的系统下,使用系统的控件包装成统一的调用接口。但由于每个系统下面的控件不同,甚至,很多是缺失的。所以,效果并不太好。现在基本上没有人使用了。
  • Swing
    为了解决Awt在不同系统下控件不一样的问题,开发了一套独立运行在Java虚拟机上的控件,这就是Swing。由于它完全独立于操作系统,所以,可以在各个系统下运行,并且基本一致。但是,由于是虚拟出来的控件,因此运行效率上稍微差一些,比较慢。另外,默认的界面比较丑,但是,有Look And Feel,类似css这种,可以通过配置修改显示效果。精通之后,可以做很多的效果出来,但是入门比较困难,开发效率也不高。
  • SWT
    IBM为了开发Eclipse,开发出来的一套界面库,它基于Awt和Swing之间,效率等各方面,相当于各取了其中的一部分。已经不推荐使用了。
  • JavaFx
    JavaFx是Java中的最新的界面库,Oracle开发的。有两种编写模式,一种是纯代码编写,一种是代码+FXML。纯代码好理解,代码+FXML是什么呢?如果熟悉html编程的话,就比较好理解了,相当于html+js来编写界面。当然,这两种方法都可以配合css来编写。
    http://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm
 AwtSwingSWTJavaFx
优势1. 运行速度快1. 多平台1. 介于Awt和Swing之间1. 支持控件多
  2. 稳定 2. 默认控件漂亮
    3. 编写接口简洁
    4. 开发效率高
劣势1. 夸平台效果不好1. 运行效率低1. 介于Awt和Swing之间1. 运行效率一般
 2. 开发效率低2. 开发效率不高  
  3. 接口繁琐  
  4. 默认主题界面不美观  
  5. 精通耗时长  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值