【JAVA快速编写UI】 Java 编写一个编码转换和加解密工具,可以创建一个简单的 GUI 应用程序(例子)

news2025/2/25 6:35:55
EncodingDecodingTool/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── rockmelodies/
│   │   │           └── encodingdecodingtool/
│   │   │               ├── MainApp.java
│   │   │               ├── controller/
│   │   │               │   └── MainController.java
│   │   │               └── util/
│   │   │                   └── CryptoUtils.java
│   │   └── resources/
│   │       └── com/
│   │           └── rockmelodies/
│   │               └── encodingdecodingtool/
│   │                   └── view/
│   │                       ├── main_layout.fxml
│   │                       └── styles.css
└── pom.xml

# MainApp.java
package com.rockmelodies.encodingdecodingtool;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class MainApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("/com/rockmelodies/encodingdecodingtool/view/main_layout.fxml"));
        primaryStage.setTitle("Encoding & Decoding Tool");
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }

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


# CryptoUtils.java
package com.rockmelodies.encodingdecodingtool;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class MainApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("/com/rockmelodies/encodingdecodingtool/view/main_layout.fxml"));
        primaryStage.setTitle("Encoding & Decoding Tool");
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }

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


# MainController
package com.rockmelodies.encodingdecodingtool.controller;

import javafx.fxml.FXML;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import com.rockmelodies.encodingdecodingtool.util.CryptoUtils;

public class MainController {

    @FXML
    private TextField inputField;
    @FXML
    private TextArea outputArea;

    @FXML
    private void handleBase64Encode() {
        String input = inputField.getText();
        String encoded = CryptoUtils.base64Encode(input);
        outputArea.setText(encoded);
    }

    @FXML
    private void handleBase64Decode() {
        String input = inputField.getText();
        String decoded = CryptoUtils.base64Decode(input);
        outputArea.setText(decoded);
    }

    public void switchTheme(String theme) {
        Scene scene = inputField.getScene();
        scene.getStylesheets().clear();
        scene.getStylesheets().add(getClass().getResource("/com/rockmelodies/encodingdecodingtool/view/" + theme + ".css").toExternalForm());
    }


    // Add more handlers for other encoding/decoding and encryption/decryption methods
}

main_layout.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="com.rockmelodies.encodingdecodingtool.controller.MainController">
    <TextField fx:id="inputField" promptText="Enter text here..."/>
    <Button text="Base64 Encode" onAction="#handleBase64Encode"/>
    <Button text="Base64 Decode" onAction="#handleBase64Decode"/>
    <!-- Add more buttons for other encoding/decoding and encryption/decryption methods -->
    <TextArea fx:id="outputArea" editable="false" promptText="Output will appear here..."/>
</VBox>

styless.css

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="com.rockmelodies.encodingdecodingtool.controller.MainController">
    <TextField fx:id="inputField" promptText="Enter text here..."/>
    <Button text="Base64 Encode" onAction="#handleBase64Encode"/>
    <Button text="Base64 Decode" onAction="#handleBase64Decode"/>
    <!-- Add more buttons for other encoding/decoding and encryption/decryption methods -->
    <TextArea fx:id="outputArea" editable="false" promptText="Output will appear here..."/>
</VBox>

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MongoDB启动报错

spring boot 引入MongoDB启动报错 java.lang.IllegalStateException: Failed to introspect Class [io.micrometer.core.instrument.binder.mongodb.DefaultMongoConnectionPoolTagsProvider] from ClassLoader [sun.misc.Launcher$AppClassLoader18b4aac2] at org.springfra…

初识STL(标准模板库)

目录 ​编辑 什么是STL STL的版本 STL的六大组件 如何学习STL STL的优势 STL的缺陷 ⭐什么是STL STL(standard template libaray- 标准模板库 ) &#xff1a; 是 C 标准库的重要组成部分 &#xff0c;不仅是一个可复用的组件库&#xff0c;而且 是一个包罗数据结构与算法…

C语言笔记:函数与程序结构

目录 ACM金牌带你零基础直达C语言精通-课程资料 一.作用域的基本概念 二.函数 1. 函数的定义和使用 2.为什么一定要有函数结构 3.形参与实参 4.函数的声明和定义 5.递归函数 此代码中递归函数执行流程&#xff1a; 练习&#xff1a;求斐波那契数列第n项的值&#xff1a; 欧几里…

洛谷_P1104 生日_python写法

P1104 生日 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 知识点&#xff1a; 还是自定义规则的排序&#xff0c;然后这里还有python中如何在一行中输入多种类型的数据。 n int(input()) data [] num 1 for i in range(n):img list(input().split())s img[0]y int(img…

【unity与android的交互】移动游戏发布更安心!Unity安卓平台打包相关的常见参数全详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

深度学习500问——Chapter03:深度学习基础(3)

文章目录 3.5 Batch Size 3.5.1 为什么需要 Batch size 3.5.2 Batch Size 值的选择 3.5.3 在合理范围内&#xff0c;增大Batch Size有何好处 3.5.4 盲目增大 Batch Size有何坏处 3.5.5 调节Batch Size对训练效果影响到底如何 3.6 归一化 3.6.1 归一化含义 3.6.2 为什么…

大模型知识库

一种利用 langchain 思想实现的基于本地知识库的问答应用&#xff0c;目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。 1. 下载Langchain-chatchat git clone https://github.com/chatchat-space/Langchain-Chatchat/ 2. 下载大模型和embe…

打开Railway神奇大门:Railway免费注册部署全面教程

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃斜杠君&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &#…

React——开发者工具

浏览器插件&#xff1a;谷歌浏览器插件react-devtools 方式1&#xff1a;chrome应用商店添加 方式2&#xff1a;下载安装包放在浏览器上

Redis缓存穿透的几种解决方案

目录 缓存穿透原理&#xff1a; 缓存穿透一般有几种解决方案&#xff1a; 1.缓存空值 2.使用锁 3.布隆过滤器 优缺点 布隆过滤器误判理解 布隆过滤器的简单使用流程 4.组合方案 那么当我们高并发的访问短链接或者人为的去穿透的时候呢&#xff1f; 最近做项目遇到了缓…

SpringBoot自动配置

EnableAutoConfiguration源码解析SpringBoot常用条件注解源码解析SpringBoot之Mybatis自动配置源码解析SpringBoot之AOP自动配置源码解析SpringBoot Jar包启动过程源码解析 SpringBoot2.6.6源码地址&#xff1a;SpringBoot-2.6.6: SpringBoot2.6.6 注解详解 SpringBootConfig…

【技术栈】Spring Cache 简化 Redis 缓存使用

​ SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;保留赤子之心也许是种幸运吧 ​ 本文封面由 凯楠&#x1f4f8; 友情提供 目录 本栏传送门 1. Spring Cache 介绍 2. Spring Cache 常用注解 注&#xff1a;手机端浏览本文章…

java入门 -输入和输出

输入输出 开发中大量会使用输入和输出&#xff0c;今天来总结一下Java语法阶段常使用的输入和输出。 输出 System.out 控制台输出信息。 不换行显示一行&#xff1a; System.out.print( ); System.out.print("hello "); System.out.print("java!");运行结…

如何强健“伙伴+华为”体系?华为用六大升级给出答案

聚拢企业内部资源&#xff0c;可以成事&#xff1b;而聚拢企业内外资源&#xff0c;则可成势。 华为如何在NA、商业和分销三大赛道聚拢伙伴之力成势&#xff1f;伙伴又如何与华为一起顺势而为&#xff0c;获得发展和收益&#xff1f;这是在一年一度的“华为中国合作伙伴大会”…

MyBatis3源码深度解析(十六)SqlSession的创建与执行(三)Mapper方法的调用过程

文章目录 前言5.9 Mapper方法的调用过程5.10 小结 前言 上一节【MyBatis3源码深度解析(十五)SqlSession的创建与执行(二)Mapper接口和XML配置文件的注册与获取】已经知道&#xff0c;调用SqlSession对象的getMapper(Class)方法&#xff0c;传入指定的Mapper接口对应的Class对象…

BUU [MRCTF2020]套娃

BUU [MRCTF2020]套娃 开题&#xff0c;啥也没有。 查看网页源代码发现后端源代码&#xff1a; <?php //1st $query $_SERVER[QUERY_STRING];if( substr_count($query, _) ! 0 || substr_count($query, %5f) ! 0 ){die(Y0u are So cutE!); }if($_GET[b_u_p_t] ! 23333 &am…

Vue核心知识点 -Vue2响应式系统是基于什么实现的、以及会产生什么问题和解决方案

一、概念 在Vue 2中&#xff0c;响应式系统是基于Object.defineProperty实现的。它通过劫持对象的属性来实现数据的响应式更新。 当你将一个对象传递给Vue实例的data选项时&#xff0c;Vue会遍历对象的每个属性&#xff0c;并使用Object.defineProperty方法将其转换为getter和s…

项目总结报告-word

2 项目工作成果 2.1 交付给用户的产品 2.2 交付给研发中心的产品 2.2.1 代码部分 2.2.2 文档部分 2.3 需求完成情况与功能及性能符合性统计 2.3.1 需求完成情况统计 2.3.2 功能符合性分析 2.3.3 性能符合性分析 3 项目工作分析 3.1 项目计划与进度实施分析 3.1.1 开发进度 3.1.…

2000-2021年各省研发强度数据(原始数据+计算结果)(无缺失)

2000-2021年各省研发强度数据&#xff08;原始数据计算结果&#xff09;&#xff08;无缺失&#xff09; 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;RD经费内部支出&#xff08;万元&#xff09;、国内生产总值、研发强度 3、范围&#xff1a;31省 4、来源&#…

【源码阅读】EVMⅢ

参考[link](https://blog.csdn.net/weixin_43563956/article/details/127725385 大致流程如下&#xff1a; 编写合约 > 生成abi > 解析abi得出指令集 > 指令通过opcode来映射成操作码集 > 生成一个operation 以太坊虚拟机的工作流程&#xff1a; 由solidity语言编…