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构建
项目源代码见附件
相关推荐
保存并退出。 **第三步:** 更新环境变量。执行 `sudo dpkg-reconfigure locales` 命令,选择支持中文的字符集,如 `zh_CN.UTF-8`。 **第四步:** 重启终端或重新登录以使更改生效。 **第五步:** 检查Java环境...
- 在读取和写入联系人信息时,会涉及到文件的打开、读取和写入操作。Java提供了`FileReader`、`FileWriter`、`BufferedReader`和`BufferedWriter`等类进行文件操作。 6. **JOptionPane** - 用于弹出对话框,向...
Swing控件与事件在Java GUI编程中占有重要的地位,特别是在构建复杂的用户界面时,如学生管理系统。JBuild2006是一款早期的Java开发工具,它提供了对Swing库的支持,帮助开发者创建桌面应用程序。在这个学生管理系统...
2. **菜单栏**:使用JMenuBar类创建,包含各种JMenuItem,用于执行不同的功能,比如打开、保存、退出等。 3. **租赁表单**:使用各种输入组件(如JTextField、JComboBox)收集用户租车信息,如租赁日期、车型等。 4....
例如,在点名系统中,可能有“文件”、“编辑”、“帮助”等菜单,这些菜单下又包含“打开”、“保存”、“退出”等子菜单,通过JMenuBar,用户可以通过菜单栏快速访问这些功能。 JFileChooser则是Swing提供的一个...
Java的Swing库是Java标准版(Java SE)的一部分,用于构建桌面应用程序的GUI(图形用户界面)。在“java的swing的员工管理系统.rar”这个项目中,开发者利用Swing组件创建了一个简单的员工管理系统,该系统具备了...
主要目标是创建一个用户友好的中国象棋平台,允许玩家开始新游戏、悔棋、打开已保存的棋局、保存当前棋局以及退出程序。这个项目旨在强化学生的Java编程能力,尤其是Swing库的使用,以及对象导向设计(OOP)概念的...
例如,当用户在界面上提交房源信息时,系统会将数据封装成PreparedStatement对象,然后执行相应的SQL插入语句。 此外,考虑到用户体验,该系统可能还包含了错误处理和验证机制,以确保输入数据的有效性。比如,检查...
Java Swing 计算器是一个基于Java编程语言,利用Swing库构建的图形用户界面(GUI)应用程序。Swing是Java Foundation Classes(JFC)的一部分,提供了丰富的组件集,用于创建桌面应用。在这个“我的计算器”项目中,...
3. JButton:用于创建游戏中的各种按钮,如“开始游戏”、“保存进度”、“退出游戏”等。按钮的点击事件通常会触发相应的游戏逻辑。 4. JLabel:用于显示文本和图像,如游戏标题、角色状态、地图标记等。 5. ...
这是一个基于Java SE开发的简单学生成绩管理系统,其主要特点是使用了Swing库来构建用户界面,并通过文件系统存储学生分数数据。以下是对这个项目的关键知识点的详细解释: 1. **Java SE**: Java Standard Edition...
2. **JTable**:在管理学生信息时,JTable是不可或缺的组件。它可以显示二维数据,并支持排序、选择和编辑。开发者可以通过自定义TableModel来加载和处理学生数据,比如姓名、学号、成绩等字段。 3. **JButton**:...
6. **菜单与菜单项**: JMenuBar和JMenuItem可以创建菜单栏,提供更复杂的用户操作入口,如“文件”、“编辑”、“帮助”等菜单,进一步包含“保存”、“退出”等子菜单项。 7. **布局管理**: Swing提供了多种布局...
Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。在Swing中,你可以创建丰富的、高度交互的桌面应用。在Swing窗口旋转关闭这一主题中,我们将深入探讨如何利用...
此外,案例可能会包含一个`FileMenu`类,实现文件操作的菜单栏,如打开、保存、退出等。`JMenuItem`和`JMenuBar`用于构建菜单,`ActionListener`监听用户的点击事件,执行相应的操作。例如,当用户选择“打开”时,...
一个Java程序,实现Windows记事本的功能,包括新建,打开,保存和另存为,退出,撤销,剪切,赋值,黏贴,删除,查找,替换,转到,全选,时间日期,自动换行,调整字体,状态栏,鼠标右键弹出菜单功能等
Swing是Java提供的一个用于构建图形用户界面(GUI)的工具包,它包含了各种组件,如按钮、菜单、文本框等,方便开发者创建桌面应用程序。 描述: "一个简易的文本编辑框super("记事本");JMenuBar mBar=new JMenuBar...
12. **状态更新**: 当用户执行某些操作(如保存或统计字符)时,可能需要更新界面,比如显示提示信息或更新统计结果。 通过这个项目,开发者不仅可以熟悉Java GUI编程,还能提升文件操作和事件处理的能力。实践中...