package org.javahash.gui.util;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.dnd.DropTarget;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import org.apache.commons.lang.StringUtils;
import org.javahash.gui.Button;
import org.javahash.gui.CalculateButton;
import org.javahash.gui.ChooseFileButton;
import org.javahash.gui.ClearButton;
import org.javahash.gui.ComboBox;
import org.javahash.gui.FileChooser;
import org.javahash.gui.JavaHashFrame;
import org.javahash.gui.Label;
import org.javahash.gui.MenuItem;
import org.javahash.gui.ProgressBar;
import org.javahash.gui.TextField;
import org.javahash.gui.UIManager;
import org.javahash.gui.config.Config;
import org.javahash.gui.listener.TextFieldDropTargetListener;
import org.javahash.hash.AbstractHash;
import org.javahash.hash.Hash;
import org.javahash.hash.HashFactory;
import org.javahash.util.IOUtil;
public class GuiUtil {
public static final String VERSION = "1.0.7";
public static final String CALCULATE = "Calculate";
public static final String STOP_CALCULATE = "Stop Calculate";
public static final String PAUSE_CALCULATE = "Pause Calculate";
public static final String CONTINUE_CALCULATE = "Continue Calculate";
public static final int TEXT_FIELD_WIDTH = 389;
public static final int FILE_NAME_TEXT_FIELD_WIDTH = 266;
public static final int COMBO_BOX_HEIGHT = 24;
public static final int TEXT_FIELD_HEIGHT = 24;
public static final int PROGRESS_BAR_HEIGHT = 24;
public static final int BUTTON_HEIGHT = 30;
private static Clipboard clipboard = null;
private static MenuItem calculateMenuItem = null;
private static MenuItem pauseCalculateMenuItem = null;
private static MenuItem copyHashMenuItem = null;
private static MenuItem compareMenuItem = null;
private static MenuItem clearMenuItem = null;
private static ComboBox hashTypeComboBox = null;
private static TextField fileNameTextField = null;
private static ProgressBar progressBar = null;
private static Label hashLabel = null;
private static TextField hashTextField = null;
private static TextField compareTextField = null;
private static Button chooseFileButton = null;
private static Button calculateButton = null;
private static Button copyHashButton = null;
private static Button clearButton = null;
private static FileChooser fileChooser = null;
private static Map<String, Hash> hashMap = new HashMap<String, Hash>();
private static CalculateThread calcuateThread = null;
public static final String LINE_SEPARATOR = System.getProperty("line.separator");
static {
try {
clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
} catch(Exception e) {
e.printStackTrace();
}
}
private GuiUtil() {
// Do nothing
}
public static Clipboard getClipboard() {
return clipboard;
}
public static MenuItem getCalculateMenuItem() {
if(calculateMenuItem == null) {
calculateMenuItem = new MenuItem(GuiUtil.CALCULATE);
calculateMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if(GuiUtil.CALCULATE.equals(ae.getActionCommand())) {
GuiUtil.calculate();
} else {
GuiUtil.stopCalculate();
}
}
});
}
return calculateMenuItem;
}
public static MenuItem getCalculateMenuItem2() {
return new MenuItem(GuiUtil.CALCULATE);
}
public static MenuItem getPauseCalculateMenuItem() {
if(pauseCalculateMenuItem == null) {
pauseCalculateMenuItem = new MenuItem(GuiUtil.PAUSE_CALCULATE);
pauseCalculateMenuItem.setEnabled(false);
pauseCalculateMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if(GuiUtil.PAUSE_CALCULATE.equals(ae.getActionCommand())) {
GuiUtil.pauseCalculate();
} else {
GuiUtil.continueCalculate();
}
}
});
}
return pauseCalculateMenuItem;
}
public static MenuItem getCopyHashMenuItem() {
if(copyHashMenuItem == null) {
copyHashMenuItem = new MenuItem("Copy " + GuiUtil.getHashType());
copyHashMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
GuiUtil.copyHash();
}
});
}
return copyHashMenuItem;
}
public static MenuItem getCompareMenuItem() {
if(compareMenuItem == null) {
compareMenuItem = new MenuItem("Compare");
compareMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
GuiUtil.compare();
}
});
}
return compareMenuItem;
}
public static MenuItem getClearMenuItem() {
if(clearMenuItem == null) {
clearMenuItem = new MenuItem("Clear");
clearMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
GuiUtil.clear();
}
});
}
return clearMenuItem;
}
public static ComboBox getHashTypeComboBox() {
if(hashTypeComboBox == null) {
hashTypeComboBox = new ComboBox(Config.getHashTypes(),
new Dimension(389, COMBO_BOX_HEIGHT), Config.getDefaultHashType());
hashTypeComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
getHashLabel().setText(getHashLabelText());
getCopyHashButton().setText(getCopyHashButtonText());
getCopyHashMenuItem().setText(getCopyHashButtonText());
}
});
}
return hashTypeComboBox;
}
public static String getHashType() {
return getHashTypeComboBox().getSelectedItem().toString();
}
public static TextField getFileNameTextField() {
if(fileNameTextField == null) {
fileNameTextField = new TextField(new Dimension(
FILE_NAME_TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT));
fileNameTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent ke) {
super.keyReleased(ke);
if(ke.getKeyCode() == 10) { // Enter key pressed
GuiUtil.stopAndCalculate();
}
}
});
new DropTarget(fileNameTextField,
new TextFieldDropTargetListener(fileNameTextField));
}
return fileNameTextField;
}
public static String getFileName() {
return getFileNameTextField().getText();
}
public static void setFileName(String fileName) {
getFileNameTextField().setText(fileName);
}
public static void setFileName(final File file) {
getFileNameTextField().setText(file);
}
public static ProgressBar getProgressBar() {
if(progressBar == null) {
progressBar = new ProgressBar(new Dimension(
TEXT_FIELD_WIDTH, GuiUtil.PROGRESS_BAR_HEIGHT));
}
return progressBar;
}
public static Label getHashLabel() {
if(hashLabel == null) {
hashLabel = new Label(getHashLabelText(), getHashTextField());
}
return hashLabel;
}
public static String getHashLabelText() {
return getHashType() + ":";
}
public static TextField getHashTextField() {
if(hashTextField == null) {
hashTextField = new TextField();
hashTextField.setEditable(false);
}
return hashTextField;
}
public static String getHash() {
return getHashTextField().getText();
}
public static void setHash(String hash) {
getHashTextField().setText(hash);
}
public static TextField getCompareTextField() {
if(compareTextField == null) {
compareTextField = new TextField();
}
return compareTextField;
}
public static String getCompare() {
return getCompareTextField().ge
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
yolov9 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java的开发源码-哈希计算工具 Java-hash.zip (59个子文件)
lib
commons-lang-2.5.jar 273KB
src
org
javahash
gui
Button.java 652B
Panel.java 269B
Menu.java 366B
JavaHashFrame.java 1017B
UIManager.java 1KB
MenuItem.java 384B
LookAndFeelMenuItem.java 1KB
CalculateButton.java 696B
TextField.java 2KB
Label.java 1024B
HashTypeMenuItem.java 907B
PopupMenu.java 183B
CommandPanel.java 1KB
CheckBoxMenuItem.java 406B
CenterPanel.java 749B
event
LookAndFeelChangeEvent.java 630B
FileChooser.java 189B
MenuBar.java 5KB
ComboBox.java 1KB
ChooseFileButton.java 589B
ClearButton.java 465B
FormFieldPanel.java 781B
GlobalPopupMenu.java 691B
Main.java 316B
listener
DefaultCalculateListener.java 3KB
TextFieldDropTargetListener.java 4KB
LookAndFeelChangeListener.java 289B
DefaultLookAndFeelChangeListener.java 1KB
PopupMenuAdapter.java 426B
CalculateAdapter.java 677B
util
CalculateThread.java 2KB
ValidateUtil.java 1KB
BooleanUtil.java 317B
GuiUtil.java 15KB
CompareButton.java 470B
RadioButtonMenuItem.java 329B
config
Config.java 6KB
TextFieldPopupMenu.java 2KB
ProgressBar.java 899B
hash
HashFactory.java 998B
AbstractHash.java 7KB
Hash.java 839B
Adler32Hash.java 615B
event
CalculateEvent.java 953B
CRC32Hash.java 599B
exception
UnableToCalculateException.java 523B
impl
SHA1Hash.java 220B
MD5Hash.java 217B
SHA256Hash.java 224B
SHA384Hash.java 224B
MD2Hash.java 217B
Adler32Hash.java 1KB
CRC32Hash.java 644B
SHA512Hash.java 224B
SHAHash.java 217B
listener
CalculateListener.java 484B
AbstractMessageDigestHash.java 1KB
util
IOUtil.java 315B
共 59 条
- 1
资源评论
快乐无限出发
- 粉丝: 1127
- 资源: 7265
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- Highlight Plus v20.0.1
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- python tkinter-08-盒子模型.ev4.rar
- Doozy UI Manager 2023
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现无线传感器网络无需测距定位算法matlab源代码 包括apit,dv-hop,amorphous在内的共7个
- 基于python的yolov5实现的旋转目标检测
- 基于matlab实现无线传感器网络 CAB定位仿真程序 这是无线传感器节点定位CAB算法的仿真程序,由matlab完成.rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功