基于socket和javaFX简单文件传输工具

作者:uncle_zhang 时间:2022-11-04 12:37:42 

本文实例介绍了基于socket和javaFX简单文件传输工具,分享给大家供大家参考,具体内容如下


package application;

import java.io.File;

import org.james.component.ButtonBox;
import org.james.component.FileReceiverGrid;
import org.james.component.FileSenderGrid;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.FileChooser;
import javafx.stage.Stage;

public class Main extends Application {

public static Stage primaryStage;

@Override
 public void start(Stage primaryStage) {
   try {
     this.primaryStage = primaryStage;
     primaryStage.setFullScreen(false);
     primaryStage.setResizable(false);

FileReceiverGrid fileReceiverGrid = new FileReceiverGrid();
     fileReceiverGrid.initialize();
     FileSenderGrid fileSenderGrid = new FileSenderGrid();
     fileSenderGrid.initialize();

ButtonBox buttonBox = new ButtonBox();
     buttonBox.initialize();

BorderPane root = new BorderPane();
     root.setTop(fileReceiverGrid);
     root.setBottom(buttonBox);

buttonBox.getReceiveFileFunc().setOnAction(new EventHandler<ActionEvent>() {
       @Override
       public void handle(ActionEvent event) {
         buttonBox.getReceiveFileFunc().setDisable(true);
         buttonBox.getSendFileFunc().setDisable(false);
         root.setTop(fileReceiverGrid);
       }
     });

buttonBox.getSendFileFunc().setOnAction(new EventHandler<ActionEvent>() {
       @Override
       public void handle(ActionEvent event) {
         buttonBox.getReceiveFileFunc().setDisable(false);
         buttonBox.getSendFileFunc().setDisable(true);
         root.setTop(fileSenderGrid);
       }
     });

fileSenderGrid.getSelectFileBtn().setOnAction(new EventHandler<ActionEvent>() {
       @Override
       public void handle(ActionEvent event) {
         FileChooser fileChooser = new FileChooser();
         fileChooser.setTitle("打开文件");
         File selectedFile = fileChooser.showOpenDialog(primaryStage);
         if(selectedFile != null){
           fileSenderGrid.setFile(selectedFile);
           fileSenderGrid.getFileNameLabel().setText(selectedFile.getPath());
         }
       }
     });

Scene scene = new Scene(root,800,400);
     scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
     primaryStage.setScene(scene);
     primaryStage.show();
   } catch(Exception e) {
     e.printStackTrace();
   }
 }

public static void main(String[] args) {
   launch(args);
 }
}
标签:socket,javaFX,文件传输
0
投稿

猜你喜欢

  • Java多线程之ThreadLocal浅析

    2023-06-19 19:55:37
  • Hystrix Dashboard断路监控仪表盘的实现详细介绍

    2022-07-29 05:27:26
  • 基于Java语言实现Socket通信的实例

    2021-08-06 17:17:50
  • java实现冒泡排序算法

    2023-10-17 20:44:01
  • C语言中求字符串长度的函数的几种实现方法

    2023-07-04 23:29:05
  • Java实现多个wav文件合成一个的方法示例

    2021-10-08 08:14:25
  • window下安装和配置maven环境

    2021-06-13 14:32:16
  • Winform 实现进度条弹窗和任务控制

    2023-06-20 04:27:09
  • 集合嵌套之ArrayList嵌套ArrayList实例

    2021-06-23 07:32:25
  • 基于Spring@Autowired注解与自动装配详谈

    2022-01-14 09:38:49
  • SpringDataJPA在Entity中常用的注解介绍

    2023-11-27 09:40:36
  • 详解Java中final的用法

    2022-09-22 10:20:32
  • 详解解密Java中的类型转换问题

    2023-11-24 20:46:28
  • Java中lombok的@Builder注解的解析与简单使用详解

    2022-12-29 06:44:55
  • spring webflux自定义netty 参数解析

    2023-07-26 18:38:25
  • SpringBoot Java后端实现okhttp3超时设置的方法实例

    2022-11-06 04:56:03
  • Java建造者设计模式详解

    2022-09-19 13:14:11
  • Unity shader实现自由放大缩小效果

    2022-04-05 06:50:46
  • Java文件上传下载、邮件收发实例代码

    2022-07-05 06:40:00
  • 关于C#操作文件路径(Directory)的常用静态方法详解

    2023-06-06 10:40:12
  • asp之家 软件编程 m.aspxhome.com