添加http工具 2023年3月8日10:16:37
parent
02e440d2a4
commit
31e49d3fa6
|
|
@ -0,0 +1,446 @@
|
|||
package com.zhangmeng.tools.controller;
|
||||
|
||||
import com.zhangmeng.tools.utils.ImagePath;
|
||||
import com.zhangmeng.tools.utils.ResourcesUtils;
|
||||
import javafx.beans.property.SimpleDoubleProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.ListCell;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.SplitPane;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.paint.Paint;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.util.Callback;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author : 芊芊墨客
|
||||
* @version : 1.0
|
||||
* @date : 2023-03-08 09:41
|
||||
*/
|
||||
@Slf4j
|
||||
public class HttpToolsController {
|
||||
|
||||
|
||||
private SimpleDoubleProperty width = new SimpleDoubleProperty(0.0);
|
||||
private SimpleDoubleProperty height = new SimpleDoubleProperty(0.0);
|
||||
private AnchorPane root;
|
||||
|
||||
private AnchorPane http_request;
|
||||
private AnchorPane http_upload;
|
||||
private AnchorPane http_download;
|
||||
|
||||
|
||||
public static final String color_cell = "#f4f4f4";
|
||||
|
||||
@FXML
|
||||
private ListView<ResourcesUtils.HttpTools> listView;
|
||||
|
||||
@FXML
|
||||
private SplitPane splitPane;
|
||||
|
||||
@FXML
|
||||
public void date_query_menu_item(){
|
||||
load_small_tools(5);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void cron_menu_item(){
|
||||
load_small_tools(6);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void md5_menu_item() {
|
||||
load_encrypt(0);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void spring_security_menu_item() {
|
||||
load_encrypt(1);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void video_menu_item() {
|
||||
load_player(0);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void music_menu_item() {
|
||||
load_player(1);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void vip_parser_menu_item() {
|
||||
load_player(2);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void hex_16(){
|
||||
load_small_tools(0);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void hex_16_menu_item(){
|
||||
load_small_tools(0);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void unicode_menu_item(){
|
||||
load_small_tools(1);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void jwt_menu_item(){
|
||||
load_small_tools(2);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void color_choose_menu_item(){
|
||||
load_small_tools(3);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void qr_code_menu_item(){
|
||||
load_small_tools(4);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void base_62_menu_item(){
|
||||
load_codec_tools(0);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void base_64_menu_item(){
|
||||
load_codec_tools(1);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void base_32_menu_item(){
|
||||
load_codec_tools(2);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void morse_coder_menu_item(){
|
||||
load_codec_tools(3);
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void sql_code_gen_menu_item(){
|
||||
load_sql_tools(0);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void netty_client_menu_item(){
|
||||
load_network_tools(0);
|
||||
}
|
||||
|
||||
public void load_network_tools(int index){
|
||||
AnchorPane fx = null;
|
||||
try {
|
||||
fx = FXMLLoader.load(ResourcesUtils.getResource("network-tools"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Scene scene = new Scene(fx);
|
||||
Stage stage = (Stage) splitPane.getScene().getWindow();
|
||||
stage.setScene(scene);
|
||||
|
||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||
listView.getSelectionModel().select(index);
|
||||
}
|
||||
|
||||
public void load_sql_tools(int index){
|
||||
AnchorPane fx = null;
|
||||
try {
|
||||
fx = FXMLLoader.load(ResourcesUtils.getResource("sql-tools"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Scene scene = new Scene(fx);
|
||||
Stage stage = (Stage) splitPane.getScene().getWindow();
|
||||
stage.setScene(scene);
|
||||
|
||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||
listView.getSelectionModel().select(index);
|
||||
}
|
||||
|
||||
public void load_codec_tools(int index){
|
||||
AnchorPane fx = null;
|
||||
try {
|
||||
fx = FXMLLoader.load(ResourcesUtils.getResource("codec-tools"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Scene scene = new Scene(fx);
|
||||
Stage stage = (Stage) splitPane.getScene().getWindow();
|
||||
stage.setScene(scene);
|
||||
|
||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||
listView.getSelectionModel().select(index);
|
||||
}
|
||||
|
||||
public void load_small_tools(int index){
|
||||
AnchorPane fx = null;
|
||||
try {
|
||||
fx = FXMLLoader.load(ResourcesUtils.getResource("small-tools"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Scene scene = new Scene(fx);
|
||||
Stage stage = (Stage) splitPane.getScene().getWindow();
|
||||
stage.setScene(scene);
|
||||
|
||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||
listView.getSelectionModel().select(index);
|
||||
}
|
||||
|
||||
public void load_player(int index) {
|
||||
AnchorPane fx = null;
|
||||
try {
|
||||
fx = FXMLLoader.load(ResourcesUtils.getResource("player"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Scene scene = new Scene(fx);
|
||||
Stage stage = (Stage) splitPane.getScene().getWindow();
|
||||
stage.setScene(scene);
|
||||
|
||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||
listView.getSelectionModel().select(index);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void initialize() {
|
||||
init();
|
||||
listView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
|
||||
if (newValue != null) {
|
||||
boolean flag = false;
|
||||
|
||||
if (newValue.getIndex() == 0) {
|
||||
if (http_request != null){
|
||||
flag = true;
|
||||
}
|
||||
http_request(flag);
|
||||
}
|
||||
|
||||
if (newValue.getIndex() == 1) {
|
||||
if (http_request != null){
|
||||
flag = true;
|
||||
}
|
||||
http_upload(flag);
|
||||
}
|
||||
|
||||
if (newValue.getIndex() == 2) {
|
||||
if (http_request != null){
|
||||
flag = true;
|
||||
}
|
||||
http_download(flag);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static Image getImage(ResourcesUtils.HttpTools player){
|
||||
return switch (player){
|
||||
case Http_Request -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5));
|
||||
case Http_Upload -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5));
|
||||
case Http_DownLoad -> new Image(ImagePath.path(ImagePath.ImagePathType.SPRING_SECURITY));
|
||||
};
|
||||
}
|
||||
|
||||
public void init() {
|
||||
ResourcesUtils.HttpTools[] values = ResourcesUtils.HttpTools.values();
|
||||
ObservableList<ResourcesUtils.HttpTools> list = FXCollections.observableArrayList();
|
||||
list.addAll(Arrays.asList(values));
|
||||
listView.setItems(list);
|
||||
listView.setFixedCellSize(40);
|
||||
listView.setCellFactory(new Callback<>() {
|
||||
private int position;
|
||||
@Override
|
||||
public ListCell<ResourcesUtils.HttpTools> call(ListView<ResourcesUtils.HttpTools> playerListView) {
|
||||
Label label = new Label();
|
||||
label.setPrefWidth(200);
|
||||
ListCell<ResourcesUtils.HttpTools> listCell = new ListCell<>() {
|
||||
@Override
|
||||
protected void updateItem(ResourcesUtils.HttpTools player, boolean b) {
|
||||
super.updateItem(player, b);
|
||||
if (!b) {
|
||||
HBox hBox = new HBox(25);
|
||||
hBox.setAlignment(Pos.CENTER);
|
||||
label.setText(player.getTitle());
|
||||
label.setTextFill(Paint.valueOf("#000000"));
|
||||
Image im = getImage(player);
|
||||
ImageView iv = new ImageView(im);
|
||||
iv.setPreserveRatio(true);
|
||||
iv.setFitWidth(15);
|
||||
hBox.getChildren().add(iv);
|
||||
|
||||
hBox.getChildren().add(label);
|
||||
this.setGraphic(hBox);
|
||||
}
|
||||
this.setStyle("-fx-background-color: " + color_cell);
|
||||
}
|
||||
};
|
||||
|
||||
listCell.hoverProperty().addListener((observableValue, aBoolean, t1) -> {
|
||||
if (t1 && !label.getText().equals("")) {
|
||||
position = playerListView.getItems().indexOf(label.getText());
|
||||
label.setFont(new Font(16));
|
||||
playerListView.getFocusModel().focus(position);
|
||||
listCell.setStyle("-fx-background-color: #369e7d");
|
||||
} else {
|
||||
label.setPrefHeight(20);
|
||||
label.setFont(new Font(13));
|
||||
listCell.setStyle("-fx-background-color: " + color_cell);
|
||||
}
|
||||
});
|
||||
|
||||
return listCell;
|
||||
}
|
||||
});
|
||||
|
||||
http_request(false);
|
||||
}
|
||||
|
||||
private void http_request(boolean flag){
|
||||
//默认选择第一个
|
||||
listView.getSelectionModel().select(0);
|
||||
|
||||
if (!flag){
|
||||
try {
|
||||
root = FXMLLoader.load(ResourcesUtils.getResource("http-request"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
http_request = root;
|
||||
}else {
|
||||
root = http_request;
|
||||
}
|
||||
common_method();
|
||||
}
|
||||
|
||||
private void http_upload(boolean flag){
|
||||
//默认选择第一个
|
||||
listView.getSelectionModel().select(1);
|
||||
|
||||
if (!flag){
|
||||
try {
|
||||
root = FXMLLoader.load(ResourcesUtils.getResource("http-upload"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
http_request = root;
|
||||
}else {
|
||||
root = http_request;
|
||||
}
|
||||
common_method();
|
||||
}
|
||||
|
||||
private void http_download(boolean flag){
|
||||
//默认选择第一个
|
||||
listView.getSelectionModel().select(2);
|
||||
|
||||
if (!flag){
|
||||
try {
|
||||
root = FXMLLoader.load(ResourcesUtils.getResource("http-download"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
http_request = root;
|
||||
}else {
|
||||
root = http_request;
|
||||
}
|
||||
common_method();
|
||||
}
|
||||
|
||||
//加载加密
|
||||
private void load_encrypt(int index) {
|
||||
AnchorPane fx = null;
|
||||
try {
|
||||
fx = FXMLLoader.load(ResourcesUtils.getResource("http-tools"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Scene scene = new Scene(fx);
|
||||
Stage stage = (Stage) splitPane.getScene().getWindow();
|
||||
stage.setScene(scene);
|
||||
|
||||
ListView<ResourcesUtils.Player> listView = (ListView) fx.lookup("#listView");
|
||||
listView.getSelectionModel().select(index);
|
||||
}
|
||||
|
||||
private void common_method() {
|
||||
splitPane.getItems().remove(1);
|
||||
splitPane.getItems().add(1, root);
|
||||
root.widthProperty().addListener((observable, oldValue, newValue) -> {
|
||||
if (newValue != null) {
|
||||
double width = splitPane.getWidth();
|
||||
HttpToolsController.this.width.set(width);
|
||||
log.info("home:--->width:{}", width);
|
||||
}
|
||||
});
|
||||
root.heightProperty().addListener((observable, oldValue, newValue) -> {
|
||||
if (newValue != null) {
|
||||
double height = splitPane.getHeight();
|
||||
HttpToolsController.this.height.set(height);
|
||||
log.info("home:--->height:{}", height);
|
||||
}
|
||||
});
|
||||
|
||||
this.width.addListener((observable, oldValue, newValue) -> {
|
||||
HttpToolsController.this.root.setPrefWidth(newValue.doubleValue() - listView.getWidth());
|
||||
});
|
||||
|
||||
this.height.addListener((observable, oldValue, newValue) -> {
|
||||
HttpToolsController.this.root.setPrefHeight(newValue.doubleValue() - listView.getHeight());
|
||||
});
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void http_request_menu_item(ActionEvent event) {
|
||||
boolean flag = false;
|
||||
if (http_request != null){
|
||||
flag = true;
|
||||
}
|
||||
http_request(flag);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void http_upload_menu_item(ActionEvent event) {
|
||||
boolean flag = false;
|
||||
if (http_upload != null){
|
||||
flag = true;
|
||||
}
|
||||
http_upload(flag);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void http_download_menu_item(ActionEvent event) {
|
||||
boolean flag = false;
|
||||
if (http_download != null){
|
||||
flag = true;
|
||||
}
|
||||
http_download(flag);
|
||||
}
|
||||
}
|
||||
|
|
@ -231,4 +231,36 @@ public class ResourcesUtils {
|
|||
private String title;
|
||||
private int index;
|
||||
}
|
||||
|
||||
public enum HttpTools{
|
||||
|
||||
Http_Request("http 请求工具",0),
|
||||
Http_Upload("http 上传工具",1),
|
||||
Http_DownLoad("http 下载工具",2),
|
||||
;
|
||||
|
||||
HttpTools(String title, int index) {
|
||||
this.title = title;
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public int getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
public void setIndex(int index) {
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
private String title;
|
||||
private int index;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import java.util.*?>
|
||||
<?import javafx.scene.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" fx:controller="fxml.HttpDownload" prefHeight="649" prefWidth="1200">
|
||||
|
||||
</AnchorPane>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import java.util.*?>
|
||||
<?import javafx.scene.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="fxml.HttpRequest"
|
||||
prefHeight="400.0" prefWidth="600.0">
|
||||
|
||||
</AnchorPane>
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.ListView?>
|
||||
<?import javafx.scene.control.Menu?>
|
||||
<?import javafx.scene.control.MenuBar?>
|
||||
<?import javafx.scene.control.MenuItem?>
|
||||
<?import javafx.scene.control.SplitPane?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
|
||||
<AnchorPane prefHeight="800.0"
|
||||
prefWidth="1661.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1"
|
||||
fx:controller="com.zhangmeng.tools.controller.HttpToolsController">
|
||||
<children>
|
||||
<MenuBar layoutX="14.0" layoutY="27.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
|
||||
AnchorPane.topAnchor="0.0">
|
||||
<menus>
|
||||
<Menu mnemonicParsing="false" text="加密工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" onAction="#md5_menu_item" text="md5 加密"/>
|
||||
<MenuItem mnemonicParsing="false" onAction="#spring_security_menu_item"
|
||||
text="spring security 加密"/>
|
||||
</items>
|
||||
</Menu>
|
||||
<Menu mnemonicParsing="false" text="影音工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="视频播放" onAction="#video_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="音乐播放" onAction="#music_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="vip 视频解析" onAction="#vip_parser_menu_item"/>
|
||||
</items>
|
||||
</Menu>
|
||||
<Menu mnemonicParsing="false" text="常用小工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="16进制(Hex)" onAction="#hex_16_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="Unicode和字符串转换" onAction="#unicode_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="jwt工具" onAction="#jwt_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="颜色选择工具" onAction="#color_choose_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="二维码生成" onAction="#qr_code_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="时间工具" onAction="#date_query_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="cron表达式" onAction="#cron_menu_item"/>
|
||||
</items>
|
||||
</Menu>
|
||||
|
||||
<Menu mnemonicParsing="false" text="编解码工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="Base62编码解码" onAction="#base_62_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="Base64编码解码" onAction="#base_64_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="Base32编码解码" onAction="#base_32_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="摩尔斯电码" onAction="#morse_coder_menu_item"/>
|
||||
</items>
|
||||
</Menu>
|
||||
|
||||
<Menu mnemonicParsing="false" text="sql工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="mysql代码生成" onAction="#sql_code_gen_menu_item"/>
|
||||
</items>
|
||||
</Menu>
|
||||
|
||||
<Menu mnemonicParsing="false" text="network工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="netty-websocket工具" onAction="#netty_client_menu_item"/>
|
||||
</items>
|
||||
</Menu>
|
||||
|
||||
<Menu mnemonicParsing="false" text="http工具">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="http请求工具" onAction="#http_request_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="http上传工具" onAction="#http_upload_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="http下载工具" onAction="#http_download_menu_item"/>
|
||||
</items>
|
||||
</Menu>
|
||||
</menus>
|
||||
</MenuBar>
|
||||
<SplitPane fx:id="splitPane" dividerPositions="0.5" layoutY="25.0" prefHeight="575.0" prefWidth="1200.0"
|
||||
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
|
||||
AnchorPane.topAnchor="25.0">
|
||||
<items>
|
||||
<ListView fx:id="listView" maxWidth="300.0" minWidth="200.0" prefHeight="200.0" prefWidth="200.0"/>
|
||||
<AnchorPane prefHeight="200.0" prefWidth="200.0"/>
|
||||
</items>
|
||||
</SplitPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import java.util.*?>
|
||||
<?import javafx.scene.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="fxml.HttpUpload"
|
||||
prefHeight="400.0" prefWidth="600.0">
|
||||
|
||||
</AnchorPane>
|
||||
Loading…
Reference in New Issue