基于javaFX2的GUI开发

  1. 开发工具准备JavaFX Scene Builder 2.0,idea
  2. 打开idea,新建工程
    在这里插入图片描述
  3. 新建后工程结构
    在这里插入图片描述
    说明:main为入口函数,sample.fxml就是窗口布局,类似android的xml页面布局。control负责控制和协调窗口下组件
  4. 使用JavaFX Scene Builder 2.0打开sample.fxml
    在这里插入图片描述
    说明:图中可拖拽组件,该图中有组件imageview,button,mediaview
    对应的FXML:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.media.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<GridPane alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints />
   </rowConstraints>
   <children>
      <AnchorPane prefHeight="565.0" prefWidth="870.0">
         <children>
            <ImageView fitHeight="565.0" fitWidth="873.0" layoutY="-1.0" pickOnBounds="true">
               <image>
                  <Image url="http://img.zcool.cn/community/01d881579dc3620000018c1b430c4b.JPG@3000w_1l_2o_100sh.jpg" />
               </image>
            </ImageView>
            <Button layoutX="3.0" layoutY="-1.0" mnemonicParsing="false" onAction="#clickme" text="点我呀" />
            <MediaView fx:id="mv" fitHeight="565.0" fitWidth="873.0" layoutX="2.0" layoutY="29.0" />
         </children>
      </AnchorPane>
   </children>
</GridPane>

  1. 控制器
package sample;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;

public class Controller {
    @FXML
    private MediaView mv;

    @FXML
    private void clickme(ActionEvent event) throws Exception {
        String media_URL = this.getClass().getResource("/VID_20170830_221609.mp4").toString();
        Media media = new Media(media_URL);
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true); //设置自动播放
        mv.setMediaPlayer(mediaPlayer);
    }
}

说明:注解FXML装载FXML文件,/VID_20170830_221609.mp4为class路径下文件,clickme为按钮onAction函数
6. 主函数main

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

        primaryStage.setTitle("xxx");
        primaryStage.setIconified(false);
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

  1. shift+ctrl+alt+s,设置如下,打包结果见out目录
    在这里插入图片描述

源码下载:https://github.com/duangYiXia/MyFirstJavaFX.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值