英汉词典

  • 简介
  • 知识点简介
  • 效果图
  • 源代码
    • Word.java
    • DictionaryFunction.java
    • DictionaryFrame.java

简介

花了1个多小时帮数媒的同学用以前的项目改了一个小型JavaFx项目。。只是完成任务 = =

同样是为数媒同学做的作业:牧场物语小游戏、小冒险游戏

知识点简介

随便写写,太简单了毫无意义,只是为了完成个报告。。

  1. 利用JavaFx来制作界面,通过ActionEvent添加了事件,实现了【查找单词】,【添加单词】,【删除单词】,【查看所有】,【修改单词】操作。
  2. 利用Alert类实现了弹框,包括提示类弹框与输入类弹框。
  3. 面向对象构造了Word类,字典的属性为中文单词与英文单词,方法为实现了封装性的方法。构造dictionaryFunction类,实现了添加单词,查询单词,删除单词,修改单词,显示所有单词的方法。
  4. 在dictionaryFunction利用数组存储word类。
  5. 灵活运用了顺序、选择、循环三种结构。

效果图

运行界面

【添加单词】



【查找单词】


【删除单词】


【查看所有】
【修改单词】


源代码

Word.java

public class Word {String eWord;String cWord;public String geteWord() {return eWord;}public void seteWord(String eWord) {this.eWord = eWord;}public String getcWord() {return cWord;}public void setcWord(String cWord) {this.cWord = cWord;}public Word(String eWord, String cWord) {this.eWord = eWord;this.cWord = cWord;}public Word() {this.eWord = null;this.cWord = null;}public String toString() {return (this.eWord + "===" + this.cWord);}
}

DictionaryFunction.java

public class dictionaryFunction {Word[] words;int count;public dictionaryFunction() {words = new Word[100];count = 0;}// 添加单词public boolean add(Word word) {if (count < 100) {this.words[this.count++] = word;return true;} elsereturn false;}// 查询单词public Word searchWord(String word) {for (int i = 0; i < count; i++) {if (this.words[i].geteWord().equalsIgnoreCase(word) || this.words[i].getcWord().equalsIgnoreCase(word))return words[i];}return null;}// 显示所有单词public void listAllWords() {System.out.println("以下是所有的单词");for (int i=0;i<count;i++)System.out.println(this.words[i].toString());}// 删除单词public boolean deleteWords(String word) {int location = -1;// 寻找要删除的元素,返回truefor (int i = 0; i < count; i++) {if (this.words[i].geteWord().equalsIgnoreCase(word) || this.words[i].getcWord().equalsIgnoreCase(word)) {location = i;break;}}// 找到删除,如果是最后一个元素,count--直接覆盖if (location >= 0) {for (int i = location; i < count - 1; i++) {words[i] = words[i + 1];}count--;return true;}// 找不到返回falseelsereturn false;}// 根据中文单词的含义,更新词典中的单词public boolean updateWord(Word word) {if (word != null) {int i = indexOf(word.getcWord());if (i >= 0) {this.words[i] = word;return true;} elsereturn false;} elsereturn false;}// 判断单词的中文,显示在列表中的位置private int indexOf(String str) {if (str == null)return -1;else {for (int i = 0; i < this.count; i++) {if (this.words[i].getcWord().equals(str))return i;}return -1;}}
}

DictionaryFrame.java

import java.util.Optional;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextInputDialog;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;public class DictoryFrame extends javafx.application.Application {static TextArea showArea;   // 显示界面Button buttonFind, buttonAdd, buttonDel, buttonAll, buttonChange; // 按钮static dictionaryFuction function = new dictionaryFuction(); @Overridepublic void start(Stage primaryStage) throws Exception {BorderPane rootPane = new BorderPane();rootPane.setPadding(new Insets(10));showArea = new TextArea();showArea.setPrefSize(300, 140);showArea.setWrapText(true); // 自动showArea.setEditable(false);Font font = new Font("Cambria", 25);showArea.setFont(font);/*********开始界面**************/showArea.setText("\t   **************************\n");showArea.appendText("\t\t 欢迎使用我的字典\n");showArea.appendText("\t   **************************\n");/*****************************/rootPane.setTop(showArea);GridPane controlPane = new GridPane();    // 按钮controlPane.setAlignment(Pos.CENTER);controlPane.setPadding(new Insets(11.5, 12.5, 13.5, 14.5));controlPane.setHgap(5.5);controlPane.setVgap(5.5);int buttonWidth = 100;int buttonHeight = 30;int x_index = 0;int y_index = 0;// 按钮字体Font font2 = new Font("Cambria", 13);buttonFind = new Button("查找单词");buttonFind.setFont(font2);buttonFind.setPrefSize(buttonWidth, buttonHeight);controlPane.add(buttonFind, 0+x_index, 1+y_index);buttonAdd = new Button("添加单词");buttonAdd.setFont(font2);buttonAdd.setPrefSize(buttonWidth, buttonHeight);controlPane.add(buttonAdd, 2+x_index, 1+y_index);buttonDel = new Button("删除单词");buttonDel.setFont(font2);buttonDel.setPrefSize(buttonWidth, buttonHeight);controlPane.add(buttonDel, 4+x_index, 1+y_index);buttonAll = new  Button("查看所有");buttonAll.setFont(font2);buttonAll.setPrefSize(buttonWidth, buttonHeight);controlPane.add(buttonAll, 6+x_index, 1+y_index);buttonChange = new Button("修改单词 ");buttonChange.setFont(font2);buttonChange.setPrefSize(buttonWidth, buttonHeight);controlPane.add(buttonChange, 8+x_index, 1+y_index);/**********按钮的点击事件***********/// 查看单词buttonFind.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent event) {showWord();}});// 增加单词buttonAdd.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent event) {showAdd();}});// 删除单词buttonDel.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent event) {showDel();}});// 显示所有buttonAll.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent event) {showArea.setText("以下是所有单词:\n");for(int i = 0 ; i < function.count ; i++){showArea.appendText(function.words[i].toString() + "\n");}}});// 修改单词buttonChange.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent event) {showUpdata();}});/*******************点击事件********************/rootPane.setCenter(controlPane);Scene scene = new Scene(rootPane, 460, 300);primaryStage.setTitle("英语词典");primaryStage.setScene(scene);primaryStage.show();}// 查找单词public void showWord() {try{TextInputDialog dialog = new TextInputDialog();dialog.setHeaderText(null);dialog.setContentText("请输入要查找单词的中英文");Optional<String> result = dialog.showAndWait();String string = null;if(result.isPresent()){string = result.get();}Word word = function.searchWord(string);if (word != null) {showArea.setText("查找单词的中英文含义为:\n");showArea.appendText(word.toString());} elseshowArea.setText("这个单词没找到");}catch (Exception e) {showArea.setText("这个单词没找到");// 捕捉异常}}// 添加单词public void showAdd() {try{if (function.count < 100) {TextInputDialog dialog = new TextInputDialog();dialog.setHeaderText(null);dialog.setContentText("输入要添加单词的中文含义");Optional<String> result = dialog.showAndWait();String cWord = result.get();dialog.setContentText("输入要添加单词的英文含义");result = dialog.showAndWait();String eWord = result.get();Word word = new Word(eWord, cWord);function.add(word);showArea.setText("添加单词成功");} elseshowArea.setText("字典已满!");}catch (Exception e) {// 捕捉异常}}// 删除单词public void showDel() {try{TextInputDialog dialog = new TextInputDialog();dialog.setHeaderText(null);dialog.setContentText("输入要删除单词的含义");Optional<String> result = dialog.showAndWait();String string = result.get();boolean ifDel = function.deleteWords(string);if (ifDel)showArea.setText("删除成功!");elseshowArea.setText("删除失败!");}catch (Exception e) {// 捕捉异常}}// 修改单词public void showUpdata() {try{TextInputDialog dialog = new TextInputDialog();dialog.setHeaderText(null);dialog.setContentText("输入要修改单词的中文含义");Optional<String> result = dialog.showAndWait();String cStr = result.get();dialog.setContentText("输入单词修改后的英文含义");result = dialog.showAndWait();String eStr = result.get();Word word = new Word(eStr, cStr);if (function.updateWord(word))showArea.setText("单词修改成功");elseshowArea.setText("词典中没有这个单词");}catch (Exception e) {// 捕捉异常}}public static void main(String[] args) {launch(args);}
}

【小型JavaFx项目】英汉词典相关推荐

  1. [Silverlight]使用MVVM模式打造英汉词典

    最近比较关注MVVM(Model-View_ViewModel)模式,该模式十分适合WPF/Silverlight的开发.出于练习的目的打算使用Silverlight做个英汉词典(可能是由于近来疯狂的 ...

  2. APP Designer 制作简易英汉词典的回调函数书写

    APP Designer 制作简易英汉词典的回调函数书写 在学习MATLAB 的App Designer 时看到的一个有意思的小项目,主要步骤参考了slandarer 的MATLAB 手把手带你制作第 ...

  3. 基于linux的在线英汉词典(带源码)

    源码下载: 基于Linux的在线英汉词典-网络基础文档类资源-CSDN文库https://download.csdn.net/download/qq_63626307/86744311?spm=100 ...

  4. 电子英汉词典C语言课程设计

    电子英汉词典 1.问题描述 实现简单电子英汉词典的功能,具体管理操作包括单词的添加.显示.查找.删除.修改和保存等.采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义. 2.功能要 ...

  5. 2018-09-06 Java实现英汉词典API初版发布在Maven

    在打算批量代码汉化工具 · Issue #86 · program-in-chinese/overview时, 发现没有现成的Java库实现英汉查询功能. 于是开此项目. 源码库: program-i ...

  6. PubMed(丁香)英汉词典爬取

    使用Scrapy爬去PubMed(丁香)英汉词典 1.使用Scrapy创建项目 scrapy startproject med 2.进入med文件夹创建HtmlFilter.py用于除去标签. 实现参 ...

  7. 简单快译通英汉词典设计源码

    快译通英汉词典设计源码 项目需求分析 一.单词查询 给定文本文件"dict.txt",该文件用于存储词库.词库为"英-汉"词典,每个单词和其解释的格式固定,如下 ...

  8. JAVA课设:电子英汉词典(附源码+调试)

    JAVA课设:电子英汉词典 电子英汉词典功能概述 整体要求:用图形用户界面实现,能够编辑词典库中的信息,能够实现英译汉,汉译英.(要考虑一词多义) 具体实现:1.用图形用户界面实现:2.能够实现英译汉 ...

  9. c语言程序报告英汉词典,C语言电子英汉词典程序设计报告-自动化1203-李煜明.docx...

    C语言电子英汉词典程序设计报告-自动化1203-李煜明 课 程 设 计 报 告课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 自动化 班 级 1203 学 号 201201020304 姓 ...

最新文章

  1. websphere安装应用失败_如何使用安卓手机给任天堂Switch安装游戏NSUSBloader mobile
  2. Vivado篇(一)Notepad++编写的Verilog文件导入Vivado,中文注释乱码问题
  3. 爬取虎扑NBA首页主干道推荐贴的一只小爬虫,日常爬不冷笑话解闷
  4. 可变参数的使用之va_arg的陷阱s
  5. Python 提取数据库(Postgresql)并邮件发送
  6. 变量的比较之equals 与 == 的区别
  7. Windows下配置Git
  8. 如果网站的 Cookie 特别多特别大,会发生什么情况?
  9. ios13怎么打开科学计算机,教你iOS13怎么投屏到Win10上
  10. CentOS 7.x 内核kernel版本升级实操
  11. word页眉页脚页码设置详解
  12. 以下产品不用再做CCC认证了,你的产品在内吗?
  13. matlab求hurst,请问如何用MATLAB计算大盘的HURST
  14. anaconda conda环境管理命令
  15. 小鹏用计算机计算38X596时,物理化学-表面化学部分选择题
  16. MAC默认软件安装位置
  17. java enum枚举类的用法以及高级玩法
  18. Python-操作excel操作redis
  19. serv-u不好用?这款国产文件传输工具你值得拥有
  20. 【第五人格设计思路】守墓人·角色设计思路

热门文章

  1. 投简历没回音?你没写到点子上,HR当然不看
  2. 怎么辨别iPhone手机的真伪?
  3. c语言全局变量默认值
  4. 解决: Windows下启动Redis失败
  5. hbase记录日志wal_SQL Server事务日志–第1部分–日志结构和预写日志记录(WAL)算法
  6. sql隐式转换_SQL Server中的隐式转换
  7. sql机器学习服务_机器学习服务–在SQL Server中配置R服务
  8. MySQL 定时任务event 按天建表 并将前一天数据导入新建的表中并删除总表数据 实现分表功能
  9. 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组
  10. 如何获取不重复的随机数