1,swing工具启动时读取配置文件
/*** * 读取配置文件 * @throws IOException */ private void readConfig() throws IOException{ configFile=new File(configFilePath); if(configFile.exists()){ InputStream inStream=new FileInputStream(configFile); props.load(inStream); inStream.close();//及时关闭资源 } String shareUrl=getPropValue(PROP_KEY_SHARE_URL); String picUrls=getPropValue(PROP_KEY_PIC_URLS); // String qrCodeText=getPropValue(PROP_KEY_QR_CODE_TEXT); //要加密或解密的原文件 // String encryptedSrcfile=getPropValue(PROP_KEY_ENCRYPTED_SRCFILE); String qrComboboxStr=getPropValue(PROP_KEY_QR_CODE_COMBOBOX); if(!ValueWidget.isNullOrEmpty(shareUrl)){ urlTextField.setText(shareUrl); textField_1.setText(shareUrl); } if(!ValueWidget.isNullOrEmpty(picUrls)){ ComponentUtil.fillComboBox(picPathComboBox, picUrls); } setSwingInput(sharedPicTextField, PROP_KEY_PIC_URL); setSwingInput(redTF, PROP_KEY_COLOR_RED); setSwingInput(greenTF, PROP_KEY_COLOR_GREEN); setSwingInput(blueTF, PROP_KEY_COLOR_BLUE); setSwingInput(queryStringPanel.getQueryStringTField(), PROP_KEY_QUERY_STRING2JSON); setSwingInput(queryStringPanel.getToUrlEncodedTField_1(), PROP_KEY_HAVE_URL_DECODED); setSwingInput(queryStringPanel.getURLEncodedTF(), PROP_KEY_HAVE_URL_ENCODED); /*** * 生成二维码中的下拉框 */ ComponentUtil.fillComboBox(qrCodePanel.getQrComboBox(), qrComboboxStr); setSwingInput(qrCodePanel.getInputQRTextArea(), PROP_KEY_QR_CODE_TEXT); setSwingInput(customEncryptPanel.getSourceTextField(), PROP_KEY_ENCRYPTED_SRCFILE); }
该方法是在什么时候调用呢?
在界面渲染的最后面
该方法的功能:
读取硬盘上的配置文件,初始化到界面表单元素
2,关闭时保存界面信息到配置文件
/*** * 保存到配置文件中 * @throws IOException */ public void saveConfig() throws IOException{ if(!configFile.exists()){ try { SystemHWUtil.createEmptyFile(configFile); } catch (IOException e) { e.printStackTrace(); GUIUtil23.errorDialog(e); } } CMDUtil.show(configFilePath);//因为隐藏文件是只读的 if(ValueWidget.isNullOrEmpty(props)){ props= new Properties(); } //分享的url String url2=urlTextField.getText(); if(!ValueWidget.isNullOrEmpty(url2)){ props.setProperty(PROP_KEY_SHARE_URL, url2); } String picUrl2=sharedPicTextField.getText(); if(!ValueWidget.isNullOrEmpty(picUrl2)){ props.setProperty(PROP_KEY_PIC_URL, picUrl2); } String redColor2=redTF.getText(); if(!ValueWidget.isNullOrEmpty(redColor2)){ props.setProperty(PROP_KEY_COLOR_RED, redColor2); } String greenColor2=greenTF.getText(); if(!ValueWidget.isNullOrEmpty(greenColor2)){ props.setProperty(PROP_KEY_COLOR_GREEN, greenColor2); } String blueColor2=blueTF.getText(); if(!ValueWidget.isNullOrEmpty(blueColor2)){ props.setProperty(PROP_KEY_COLOR_BLUE, blueColor2); } String queryString2=queryStringPanel.getQueryStringTField().getText(); if(!ValueWidget.isNullOrEmpty(queryString2)){ props.setProperty(PROP_KEY_QUERY_STRING2JSON, queryString2); } String toUrlEncoded2=queryStringPanel.getToUrlEncodedTField_1().getText(); if(!ValueWidget.isNullOrEmpty(toUrlEncoded2)){ props.setProperty(PROP_KEY_HAVE_URL_DECODED, toUrlEncoded2); } String URLEncoded2=queryStringPanel.getURLEncodedTF().getText(); if(!ValueWidget.isNullOrEmpty(URLEncoded2)){ props.setProperty(PROP_KEY_HAVE_URL_ENCODED, URLEncoded2); } setCombox(PROP_KEY_PIC_URLS, sharedPicTextField, picPathComboBox); setCombox(PROP_KEY_QR_CODE_COMBOBOX, qrCodePanel.getInputQRTextArea(), qrCodePanel.getQrComboBox()); String inputQRTextAreaText=qrCodePanel.getInputQRTextArea().getText(); if(!ValueWidget.isNullOrEmpty(inputQRTextAreaText)){ props.setProperty(PROP_KEY_QR_CODE_TEXT, inputQRTextAreaText); } String sourceTextFieldText=customEncryptPanel.getSourceTextField().getText(); if(!ValueWidget.isNullOrEmpty(sourceTextFieldText)){ props.setProperty(PROP_KEY_ENCRYPTED_SRCFILE, sourceTextFieldText); } OutputStream out=new FileOutputStream(configFile); props.store(out, TimeHWUtil.formatDateTimeZH(null)); out.close();//及时关闭资源 CMDUtil.hide(configFilePath); }
该方法在什么时候调用呢?
在关闭swing界面时调用
3,相关变量的声明
protected Properties props= new Properties(); /*** * 配置文件 */ protected File configFile; public static final String configFilePath=System.getProperty("user.home")+File.separator+ ".share.properties"; public static final String PROP_KEY_SHARE_URL="share_url"; /*** * 分享的图片 */ public static final String PROP_KEY_PIC_URLS="pic_urls"; /*** * 用于保存"分享的图片"文本框中的内容 */ public static final String PROP_KEY_PIC_URL="pic_url"; /*** * 红色 */ public static final String PROP_KEY_COLOR_RED="color_red"; /*** * 绿色 */ public static final String PROP_KEY_COLOR_GREEN ="color_green"; /*** * 蓝色 */ public static final String PROP_KEY_COLOR_BLUE="color_blue"; /*** * 二维码文本 */ public static final String PROP_KEY_QR_CODE_TEXT="qr_code_text"; /*** * 要加密或解密的原文件 */ public static final String PROP_KEY_ENCRYPTED_SRCFILE="encrypted_srcfile"; /*** * 生成二维码输入框下面的下拉框 */ public static final String PROP_KEY_QR_CODE_COMBOBOX="qr_code_combobox"; /*** * 请求参数 */ public static final String PROP_KEY_QUERY_STRING2JSON="json_querystring"; /*** * 已经URL编码的内容 */ public static final String PROP_KEY_HAVE_URL_ENCODED="url_encoded"; /*** * 需URL编码的内容 */ public static final String PROP_KEY_HAVE_URL_DECODED="url_decoded";
4,读取时把配置文件读取到Properties中
InputStream inStream=new FileInputStream(configFile); props.load(inStream); inStream.close();//及时关闭资源
5,持久化时,把Properties持久化到文件中
OutputStream out=new FileOutputStream(configFile); props.store(out, TimeHWUtil.formatDateTimeZH(null)); out.close();//及时关闭资源
项目使用Java swing编写;
使用maven构建
项目源代码见附件
相关推荐
一个Java程序,实现Windows记事本的功能,包括新建,打开,保存和另存为,退出,撤销,剪切,赋值,黏贴,删除,查找,替换,转到,全选,时间日期,自动换行,调整字体,状态栏,鼠标右键弹出菜单功能等
Java聊天室程序源 2 需求分析 2.1 业务需求 1. 与聊天室成员一起聊天。 2.... 3....当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将
保存用户聊天信息。 2.2 系统功能模块 2.2.1 服务器端 1.处理用户注册 2.处理用户登录 3.处理用户发送信息 4.处理用户得到信息 5.处理用户退出 2.2.2 客户端 1.用户注册界面及结果 2.用户登录界面及结果 3....
Java聊天室程序,使用swing和tcp Java聊天室程序源 2 需求分析 2.1 业务需求 1. 与聊天室成员一起聊天。 2. 可以与聊天室成员私聊。 3. 可以改变聊天内容风格。 4. 用户注册(含头像)、登录。 5. 服务器监控...
本程序实现了五个功能键,即新游戏:开始一局新的对弈;悔棋:将棋子返回刚才所处位置;打开:调用以前保存的棋局;保存:将当前棋局保存;退出:退出本程序。
(3)游戏初始化时,向双方显示玩家等级、逃逸次数等基本信息,玩家可选择是否开始和对手的游戏。 三、开发工具 使用IDEA+maven编写代码,网络编程+多线程+swing+mysql。整体代码使用了MVC架构,数据库部分使用了...
使用 Eclipse 开发环境,以 Java 语言为载体,以 Swing 工具类为主、Windows Builder 插件为辅进行 GUI 界面的设计,用 SQL Server 数据库进行学生信息的保存。 通过研究网上各种学生管理系统,汇总其优点,设计...
开发环境分析 系统编程基于JAVA Swing的图形用户界面开发,数据信息连接后台为MySql数据库。 系统运行环境为运行Windows,具有JDK1.7以上Java编译环境和Eclipse3.0以上Java 编辑环境,Navicat for MySQL。 3. 系统...
一个Java程序,实现Windows记事本的功能,包括新建,打开,保存和另存为,退出,撤销,剪切,赋值,黏贴,删除,查找,替换,转到,全选,时间日期,自动换行,调整字体,状态栏,鼠标右键弹出菜单功能等
在1.7的基础改变页面,用Swing写界面 TestBank是进入程序的主界面 通过登录按钮,跳转到登录界面进行登录,销毁当前页面 登录成功进入存款取款主界面 通过取款按钮进入取款页面,取款成功后回到存取款主界面...
该文本编辑器实现功能较为简易,功能为新建,保存,打开,退出,修改背景颜色和字体颜色。图形界面基于swing开发工具包,使用该程序请先给IDE添加此包。
(2)业务说明:当用户打开某一相册,点选自动播放时,背景音乐播出,退出背景音 乐消失。 (3)程序代码: public class autodisplayListener2 extends JFrame implements ActionListener{ int i=-1; JDialog dialog=...
8、Windowclose 为ChatRoom.java的内部类,负责监听聊天室界面的操作,当用户退出时返回给服务 器信息。 9、Clock.java 为客户端程序的一个小程序,实现的一个石英钟功能。(可选) 五、实现细节 概述:聊天室主要...
当选择新建、关闭、退出、保存时 " "有一定的保存文件的提示。 " "(三)、结构分析 " "(1)、菜单栏:利用类JMenuBar创建一个菜单条的实例menubar,并利用类Jme" "nu创建了四个菜单的实例menu1、menu2、menu3、...
若玩家选择游戏菜单,将 出现四个选项: 新游戏(N)、退出游戏(E)、存盘退出(C)和继续游戏(S),选择新游戏则玩家开始游戏, 选择存盘退出将保存游戏记录并退出,选择继续游戏则读取保存记录玩家继续上次游戏 。...
18、程序退出前会自动暂停所有正在下载的任务,并保存到临时文件中, 下次启动程序可以继续下载; 19、程序启动时,会在电脑中检查创建myDownloader下载器的相应文件夹, 用于保存临时文件和日志文件; 文件夹...
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: ...
图形界面:可以使用JavaFX或Swing等GUI库来实现客户端的用户界面设计。 安全性考虑: 数据加密:对音视频数据和聊天内容进行加密处理,保障用户数据的机密性和完整性。 身份认证:采用安全的身份验证机制,确保只有...