四.最后优化
这里up主想出来的优化就是最后的界面优化,已经展示给大家看了,不过在最后一致的商讨下加了一个广告页和加载页美化一下流程页面
中间可以插入视频,按钮控制随时进入登录页面,我知道很多同学不喜欢广告(坏笑)
在中间插入了一个加载页,通过线程控制,有兴趣的同学可以学习,开始搜索的作用是防止误触,其实后面想想,就是一个美化的作用
所有的界面及功能展示完毕了,感谢各位的同学的观看及点赞,想要源码的可以私信up主,文章的最后会附上部分可直接运行的源码,up主也是一名在校学生,所以有大佬看见可以指点一番我也是非常欢迎(有不对的地方直接指出来,欢迎来喷),有同学对这方面感兴趣也可以私信up主交流,看到就回,本人脾气很好,很好说话,非常欢迎各位
最后大家能看到这里也是非常感谢,送各位还在学习的同学一句话:愿大家源于热爱,也忠于热爱
代码:
package com.zking.ui; import java.io.File; import javafx.application.Application; import javafx.application.Platform; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.Background; import javafx.scene.layout.BackgroundFill; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.StageStyle; /** * 加载等待页案例 * * @author Miaoqx */ public class LoadingDialog extends Application { int count = 0; Bigin bigin=new Bigin(); // 创建字符串格式的媒体源路径 String url = new File("E:\\项目资料\\S1结业\\项目资料图片\\背景图\\蟹堡王.mp4").getAbsoluteFile().toURI().toString(); // 创建媒体对象 Media media = new Media(url); // 创建媒体播放器 MediaPlayer mPlayer = new MediaPlayer(media); // 创建媒体播放视图 MediaView mView = new MediaView(mPlayer); @Override public void start(Stage stage) throws Exception { Label loadBtn = new Label("", new ImageView(new Image("图标\\进入1.jpg", 140, 80, true, true))); loadBtn.setStyle("-fx-background-color:while" + ""); loadBtn.setFont(new Font("华文琥珀", 20)); loadBtn.setPrefSize(140, 80); loadBtn.setCenterShape(true); GridPane gp = new GridPane(); gp.addRow(1, loadBtn); gp.setMargin(loadBtn, new Insets(0, 0, 0, 250)); loadBtn.setStyle("-fx-cursor:hand"); loadBtn.setOnMouseClicked(event -> { stage.close(); mPlayer.stop(); Loading loading = new Loading(new Stage()); loading.show(); new Thread(() -> { while (true) { count++; try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } if (count >= 4) { loading.closeStage(); Platform.runLater(() -> { try { new Logins().start(stage); } catch (Exception e) { e.printStackTrace(); } }); break; } } }).start(); // new Thread(() -> { // // try { // // Thread.sleep(4000); // // } catch (InterruptedException e1) { // // e1.printStackTrace(); // // } // // }).start(); }); // 设置媒体播放视图的宽度和高度 mView.setFitWidth(600); mView.setFitHeight(600); gp.setAlignment(Pos.BOTTOM_CENTER); gp.addRow(0, mView); mPlayer.play(); stage.setScene(new Scene(gp, 600, 500)); stage.setTitle("蟹堡王loading"); // stage.setMaximized(true);//设置占满全屏 // stage.getIcons().add(new Image("img\\R-C.gif")); stage.show(); // ------------------------------------------------ } public static void main(String[] args) { launch(args); } }
package com.zking.ui; import javafx.application.Platform; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.Background; import javafx.scene.layout.BackgroundFill; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.StageStyle; /** * 加载页 * * @author Miaoqx */ public class Loading { protected Stage stage; protected StackPane root; protected Label messageLb; public Loading(Stage owner) { ImageView loadingView = new ImageView( new Image("img\\汉堡加载界面.jfif"));// 可替换 messageLb = new Label("稍等!美味蟹堡马上送达"); messageLb.setFont(new Font("华文琥珀",20)); messageLb.setStyle("-fx-Text-fill:brown"); root = new StackPane(); root.setMouseTransparent(true); root.setPrefSize(owner.getWidth(), owner.getHeight()); root.setBackground(new Background(new BackgroundFill(Color.rgb(0, 0, 0, 0), null, null))); root.getChildren().addAll(loadingView, messageLb); root.setMargin(messageLb, new Insets(500,0,0,0)); Scene scene = new Scene(root); scene.setFill(Color.TRANSPARENT); stage = new Stage(); stage.setScene(scene); stage.setResizable(false); stage.initOwner(owner); stage.initStyle(StageStyle.TRANSPARENT); stage.initModality(Modality.APPLICATION_MODAL); stage.getIcons().addAll(owner.getIcons()); stage.setX(owner.getX()); stage.setY(owner.getY()); stage.setHeight(owner.getHeight()); stage.setWidth(owner.getWidth()); } //Timer // 更改信息 public void showMessage(String message) { Platform.runLater(() -> messageLb.setText(message)); } // 显示 public void show() { Platform.runLater(() -> stage.show()); } // 关闭 public void closeStage() { Platform.runLater(() -> stage.close()); } }