swing 退出时保存界面信息

1,swing工具启动时读取配置文件

Java代码  

  1. /*** 
  2.      * 读取配置文件 
  3.      * @throws IOException 
  4.      */  
  5.     private void readConfig() throws IOException{  
  6.         configFile=new File(configFilePath);  
  7.         if(configFile.exists()){  
  8.             InputStream inStream=new FileInputStream(configFile);  
  9.             props.load(inStream);  
  10.             inStream.close();//及时关闭资源  
  11.         }  
  12.         String shareUrl=getPropValue(PROP_KEY_SHARE_URL);  
  13.         String picUrls=getPropValue(PROP_KEY_PIC_URLS);  
  14. //      String qrCodeText=getPropValue(PROP_KEY_QR_CODE_TEXT);  
  15.         //要加密或解密的原文件  
  16. //      String encryptedSrcfile=getPropValue(PROP_KEY_ENCRYPTED_SRCFILE);  
  17.         String qrComboboxStr=getPropValue(PROP_KEY_QR_CODE_COMBOBOX);  
  18.         if(!ValueWidget.isNullOrEmpty(shareUrl)){  
  19.             urlTextField.setText(shareUrl);  
  20.             textField_1.setText(shareUrl);  
  21.         }  
  22.         if(!ValueWidget.isNullOrEmpty(picUrls)){  
  23.             ComponentUtil.fillComboBox(picPathComboBox, picUrls);  
  24.               
  25.         }  
  26.       
  27.         setSwingInput(sharedPicTextField, PROP_KEY_PIC_URL);  
  28.           
  29.         setSwingInput(redTF, PROP_KEY_COLOR_RED);  
  30.         setSwingInput(greenTF, PROP_KEY_COLOR_GREEN);  
  31.         setSwingInput(blueTF, PROP_KEY_COLOR_BLUE);  
  32.           
  33.         setSwingInput(queryStringPanel.getQueryStringTField(), PROP_KEY_QUERY_STRING2JSON);  
  34.         setSwingInput(queryStringPanel.getToUrlEncodedTField_1(), PROP_KEY_HAVE_URL_DECODED);  
  35.         setSwingInput(queryStringPanel.getURLEncodedTF(), PROP_KEY_HAVE_URL_ENCODED);  
  36.           
  37.         /*** 
  38.          * 生成二维码中的下拉框 
  39.          */  
  40.         ComponentUtil.fillComboBox(qrCodePanel.getQrComboBox(), qrComboboxStr);  
  41.       
  42.         setSwingInput(qrCodePanel.getInputQRTextArea(), PROP_KEY_QR_CODE_TEXT);  
  43.       
  44.         setSwingInput(customEncryptPanel.getSourceTextField(), PROP_KEY_ENCRYPTED_SRCFILE);  
  45.     }  
  46.       

 

该方法是在什么时候调用呢?

在界面渲染的最后面

 

该方法的功能:

读取硬盘上的配置文件,初始化到界面表单元素

 

 

2,关闭时保存界面信息到配置文件

Java代码  

  1. /*** 
  2.      * 保存到配置文件中 
  3.      * @throws IOException  
  4.      */  
  5.     public void saveConfig() throws IOException{  
  6.         if(!configFile.exists()){  
  7.             try {  
  8.                 SystemHWUtil.createEmptyFile(configFile);  
  9.             } catch (IOException e) {  
  10.                 e.printStackTrace();  
  11.                 GUIUtil23.errorDialog(e);  
  12.             }  
  13.         }  
  14.         CMDUtil.show(configFilePath);//因为隐藏文件是只读的  
  15.         if(ValueWidget.isNullOrEmpty(props)){  
  16.             props= new Properties();  
  17.         }  
  18.         //分享的url  
  19.         String url2=urlTextField.getText();  
  20.         if(!ValueWidget.isNullOrEmpty(url2)){  
  21.             props.setProperty(PROP_KEY_SHARE_URL, url2);  
  22.         }  
  23.         String picUrl2=sharedPicTextField.getText();  
  24.         if(!ValueWidget.isNullOrEmpty(picUrl2)){  
  25.             props.setProperty(PROP_KEY_PIC_URL, picUrl2);  
  26.         }  
  27.           
  28.         String redColor2=redTF.getText();  
  29.         if(!ValueWidget.isNullOrEmpty(redColor2)){  
  30.             props.setProperty(PROP_KEY_COLOR_RED, redColor2);  
  31.         }  
  32.         String greenColor2=greenTF.getText();  
  33.         if(!ValueWidget.isNullOrEmpty(greenColor2)){  
  34.             props.setProperty(PROP_KEY_COLOR_GREEN, greenColor2);  
  35.         }  
  36.         String blueColor2=blueTF.getText();  
  37.         if(!ValueWidget.isNullOrEmpty(blueColor2)){  
  38.             props.setProperty(PROP_KEY_COLOR_BLUE, blueColor2);  
  39.         }  
  40.           
  41.         String queryString2=queryStringPanel.getQueryStringTField().getText();  
  42.         if(!ValueWidget.isNullOrEmpty(queryString2)){  
  43.             props.setProperty(PROP_KEY_QUERY_STRING2JSON, queryString2);  
  44.         }  
  45.           
  46.         String toUrlEncoded2=queryStringPanel.getToUrlEncodedTField_1().getText();  
  47.         if(!ValueWidget.isNullOrEmpty(toUrlEncoded2)){  
  48.             props.setProperty(PROP_KEY_HAVE_URL_DECODED, toUrlEncoded2);  
  49.         }  
  50.           
  51.         String URLEncoded2=queryStringPanel.getURLEncodedTF().getText();  
  52.         if(!ValueWidget.isNullOrEmpty(URLEncoded2)){  
  53.             props.setProperty(PROP_KEY_HAVE_URL_ENCODED, URLEncoded2);  
  54.         }  
  55.           
  56.         setCombox(PROP_KEY_PIC_URLS, sharedPicTextField, picPathComboBox);  
  57.   
  58.         setCombox(PROP_KEY_QR_CODE_COMBOBOX, qrCodePanel.getInputQRTextArea(), qrCodePanel.getQrComboBox());  
  59.           
  60.         String inputQRTextAreaText=qrCodePanel.getInputQRTextArea().getText();  
  61.         if(!ValueWidget.isNullOrEmpty(inputQRTextAreaText)){  
  62.             props.setProperty(PROP_KEY_QR_CODE_TEXT, inputQRTextAreaText);  
  63.         }  
  64.           
  65.         String sourceTextFieldText=customEncryptPanel.getSourceTextField().getText();  
  66.         if(!ValueWidget.isNullOrEmpty(sourceTextFieldText)){  
  67.             props.setProperty(PROP_KEY_ENCRYPTED_SRCFILE, sourceTextFieldText);  
  68.         }  
  69.         OutputStream out=new FileOutputStream(configFile);  
  70.         props.store(out, TimeHWUtil.formatDateTimeZH(null));  
  71.         out.close();//及时关闭资源  
  72.         CMDUtil.hide(configFilePath);  
  73.     }  

 该方法在什么时候调用呢?

在关闭swing界面时调用


  

 

3,相关变量的声明

Java代码  

  1. protected Properties  props= new Properties();  
  2.     /*** 
  3.      * 配置文件 
  4.      */  
  5.     protected File configFile;  
  6. public static final String configFilePath=System.getProperty("user.home")+File.separator+ ".share.properties";  
  7. public static final String PROP_KEY_SHARE_URL="share_url";  
  8.     /*** 
  9.      * 分享的图片 
  10.      */  
  11.     public static final String PROP_KEY_PIC_URLS="pic_urls";  
  12.     /*** 
  13.      * 用于保存"分享的图片"文本框中的内容 
  14.      */  
  15.     public static final String PROP_KEY_PIC_URL="pic_url";  
  16.     /*** 
  17.      * 红色 
  18.      */  
  19.     public static final String PROP_KEY_COLOR_RED="color_red";  
  20.     /*** 
  21.      * 绿色 
  22.      */  
  23.     public static final String PROP_KEY_COLOR_GREEN ="color_green";  
  24.     /*** 
  25.      * 蓝色 
  26.      */  
  27.     public static final String PROP_KEY_COLOR_BLUE="color_blue";  
  28.     /*** 
  29.      * 二维码文本 
  30.      */  
  31.     public static final String PROP_KEY_QR_CODE_TEXT="qr_code_text";  
  32.     /*** 
  33.      * 要加密或解密的原文件 
  34.      */  
  35.     public static final String PROP_KEY_ENCRYPTED_SRCFILE="encrypted_srcfile";  
  36.     /*** 
  37.      * 生成二维码输入框下面的下拉框 
  38.      */  
  39.     public static final String PROP_KEY_QR_CODE_COMBOBOX="qr_code_combobox";  
  40.   
  41.     /*** 
  42.      * 请求参数 
  43.      */  
  44.     public static final String PROP_KEY_QUERY_STRING2JSON="json_querystring";  
  45.     /*** 
  46.      * 已经URL编码的内容 
  47.      */  
  48.     public static final String PROP_KEY_HAVE_URL_ENCODED="url_encoded";  
  49.     /*** 
  50.      * 需URL编码的内容 
  51.      */  
  52.     public static final String PROP_KEY_HAVE_URL_DECODED="url_decoded";  
  53.       

 

4,读取时把配置文件读取到Properties中

Java代码  

  1. InputStream inStream=new FileInputStream(configFile);  
  2.             props.load(inStream);  
  3.             inStream.close();//及时关闭资源  

 

5,持久化时,把Properties持久化到文件中

Java代码  

  1. OutputStream out=new FileOutputStream(configFile);  
  2.         props.store(out, TimeHWUtil.formatDateTimeZH(null));  
  3.         out.close();//及时关闭资源  
时间: 2025-01-05 03:27:11

swing 退出时保存界面信息的相关文章

Office2010退出时文件没保存,文件恢复技巧

当您辛辛苦苦地编辑或是修改了一篇文档,可是退出Office时却意外击中了"不保存"按钮,怎么办呢?还有办法找回未保存的工作吗?没问题!Office2010为您增加了这项全新的功能--恢复未保存的版本.下面,我以Word2010为例,告诉您如何恢复未保存的版本.对于其他Office2010程序,请参照类似的方法. 如果您修改了以前保存过的一篇文档,只是退出时没有保存修改结果,可以这样找回未保存的文档: ①重新打开以前保存过的那份文档,点击"文件"按钮切换到后台视图;

i 保存界面问题-iOS 记录上次退出的页面

问题描述 iOS 记录上次退出的页面 iOS 退出app后,再打开app 如何跳转到上次退出的界面,如何保存这些界面的信息, 解决方案 退出时候保存数据到沙盒目录下,下次启动的时候再重新加载,应该就可以吧 解决方案二: 我会保存沙盒目录,但是你说的重新加载时怎么弄

如何让登陆验证界面不保存用户信息?

问题描述 我做了一个验证用户登陆的界面,可是用户成功登陆后,进入下一个页面了,但是我按浏览器的后退按钮退出到登陆界面时,之前输入的用户名,密码和验证码都还留在那里,请问怎么让信息在页面刷新时就自动消息,不保存? 解决方案 解决方案二:Response.Expires=0;Response.CacheControl="no-cache"; 解决方案三:可是还是不行啊?我刚学习C#的网络编程,好多不懂的,麻烦你说详细一点,号码?谢谢啊!解决方案四:可以了,呵呵---谢谢啊!

excel文档退出时不提示保存是怎么了?

  excel文档退出时不提示保存是怎么了?          我的excel2007出了问题,文件编辑后,退出时不提示"保存",在网上搜了一下,有人询问相同的excel 问题,很多回答都是说更改"保存自动恢复信息时间间隔",或者重装office,没有其他修复这个问题的有效答案,最后在微软帮助网站http://support.microsoft.com/kb/213513/zh-cn里找到2个解决办法,一是按CTRL + S 保存更改,然后关闭该工作簿,这种办法可以

保存信息-Android 关于界面信息如何保存

问题描述 Android 关于界面信息如何保存 Android现在有三个界面输入信息 A->B->C,现在填写到C界面,想回去看B界面的信息,如何保证C界面填写的信息不会丢失? 解决方案 Android将应用log信息保存文件Android将应用log信息保存文件 解决方案二: 1.如果三个界面是三个Activity,哪么不用做处理,一定会在了在: 2.如果三个界面是用fragment 实现,哪么需要自己在 onStop()时存到成员变量里:在onStart();再填写进去: 解决方案三: 这

Android编程实现捕获程序异常退出时的错误log信息功能详解

本文实例讲述了Android编程实现捕获程序异常退出时的错误log信息功能.分享给大家供大家参考,具体如下: 很多时候我们程序无缘无故的就挂掉了,让我们一头雾水,如果刚好我们在调试,那我们可以通过错误log来查看是什么原因引起的程序崩溃.但是当我们把程序发别人使用时,就没那么好运了,那我们要怎么样才能捕获到那个错误异常呢?还好Android给我们提供了UncaughtExceptionHandler 这个类,我们可以通过实现这个类的接口,来全局捕获那个让程序崩掉的错误log信息.可以将错误的lo

Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法

转载时注明地址:http://blog.csdn.net/xiaanming/article/details/9344703 我们开发Android应用的时候,当出现Crash的时候,系统弹出一个警告框,如下图一,有些手机会黑屏几秒钟然后还伴随着振动,作为我们开发人员,是很讨厌这样子的Crash,因为这意味着我们又要改bug,每个程序员都希望自己开发出来的东西bug少点,稳定点,但是没有bug的程序几乎是不可能的,作为用户,如果出现这样子的警告框,他的心情也会很不爽,也许还会破口大骂,如果用图二

java实现创建临时文件然后在程序退出时自动删除文件_java

通过java的File类创建临时文件,然后在程序退出时自动删除临时文件.下面将通过创建一个JFrame界面,点击创建按钮在当前目录下面创建temp文件夹且创建一个以mytempfile******.tmp格式的文本文件.代码如下: 复制代码 代码如下: import java.io.*; import java.util.*; import javax.swing.*; import java.awt.event.*; /**  * 功能: 创建临时文件(在指定的路径下)  */ public

如何禁止打印文件时添加记录信息

打印机作为常见的办公工具,为我们的工作带来了不少便利.但是我们在使用打印机的过程中可能从来没有注意过每每打印一篇文章,日志文件就会加入一条记录,而这个记录从来不会有用,但却占用了很多空间.那么如何禁止打印文件时添加记录信息呢? 首先按快捷键win+r,打开运行对话框. 在运行中输入regedit   在注册表编辑器中打开hkey local machine/system/currentcontrol   在currentcontrolset中找到control,打开它   在control中找到