Java使用Preference类保存上一次记录的方法_java

本文实例讲述了Java使用Preference类保存上一次记录的方法。分享给大家供大家参考。具体分析如下:

在使用java中JFileChooser选择文件的时候,我们总希望在下次打开的时候能保存上次浏览的记录,即打开文件对话框的时候,总能追溯到上一次的路径。

有一个很愚蠢的方法,那就是在每次打开的时候把选择的文件的路径保存到本地文件中,再打开JFileChooser对话框的时候,先查看是否有内容,如果文件中有内容则按照存储的路径打开对话框。

如果我说Java里面可以不使用JNI的手段操作Windows的注册表你信不信?很多软件 的菜单里都有“Setting”或“Preferences”这样的选项用来设定或修改软件的配置,这些配置信息可以保存到一个像上面所述的配置文件当 中,如果是Windows平台下,也可能会保存到系统注册表中。从JDK 1.4开始,Java在java.util下 加入了一个专门处理用户和系统配置信息的java.util.prefs包, 其中一个类Preferences是 一种比较“高级”的玩意。

从本质上讲,Preferences本身是一个与平台无关的东西,但不同的OS对它的 SPI(Service Provider Interface)的实现却是与平台相关的,因此,在不同的系统中你可能看到首选项保存为本地文件、 LDAP目录项、数据库条目等,像在Windows平台下,它就保存到了系统注册表中。不仅如此,你还可以把首选项导出为XML文件或从XML文件导 入。

① systemNodeForPackage() //根据指定的Class对象得到一个Preferences对象,这个对象的注册表路径是从 “HKEY_LOCAL_MACHINE\”开始的

② systemRoot() //得到以注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Javasoft \Prefs 为根结点的Preferences对象

③ userNodeForPackage() //根据指定的Class对象得到一个Preferences对象,这个对象的注册表路径 是从“HKEY_CURRENT_USER\”开始的

④ userRoot() //得到以注册表路径HKEY_CURRENT_USER\SOFTWARE\Javasoft \Prefs 为根结点的Preferences对象

下面代码简单演示了Preference类的用法,代码来自网上

import java.util.prefs.Preferences;
public class PreferrenceTest {
private Preferences prefs;
public void setPreference() {
// This will define a node in which the preferences can be stored
prefs = Preferences.userRoot().node(this.getClass().getName());
String ID1 = "Test1";
String ID2 = "Test2";
String ID3 = "Test3";
// First we will get the values
// Define a boolean value
System.out.println(prefs.getBoolean(ID1, true));
// Define a string with default "Hello World
System.out.println(prefs.get(ID2, "Hello World"));
// Define a integer with default 50
System.out.println(prefs.getInt(ID3, 50));
// Now set the values
prefs.putBoolean(ID1, false);
prefs.put(ID2, "Hello Europa");
prefs.putInt(ID3, 45);
// Delete the preference settings for the first value
prefs.remove(ID1);
System.out.println(prefs.get(ID2, ""));
}
public static void main(String[] args) {
PreferrenceTest test = new PreferrenceTest();
test.setPreference();
}
}

这里演示一下如何实现选择文件保存上一次路径

Preferences pref = Preferences.userRoot().node(this.getClass().getName());
String lastPath = pref.get("lastPath", "");
   JFileChooser chooser = null;
   if(!lastPath.equals("")){
   chooser = new JFileChooser(lastPath);
   }
   else
   chooser=new JFileChooser();
//MyFileFilter 是自己写的一个文件过滤类,只接受xls格式文件
    MyFileFilter filter = new MyFileFilter("xls","只接受xls格式文件,即Excel 2003版文件");
   chooser.setFileFilter(filter);
 int state; //文件选择器返回状态
 state=chooser.showOpenDialog(null);//显示打开文件对话框
 File file = chooser.getSelectedFile(); //得到选择的文件
 pref.put("lastPath",file.getPath());
import java.io.File;
import javax.swing.filechooser.FileFilter;
//文件过滤器
public class MyFileFilter extends FileFilter
{
 public String ends; //文件后缀
 public String description; //文件描述文字
  public MyFileFilter (String ends, String description)
  { //构造函数
    this.ends = ends; //设置文件后缀
    this.description=description; //设置文件描述文字
  }
  public boolean accept (File file)
  { //重载FileFilter中的accept方法
    if (file.isDirectory ()) //如果是目录,则返回true
      return true;
    String fileName = file.getName (); //得到文件名称
    if (fileName.toUpperCase ().endsWith (ends.toUpperCase ()))
    //把文件后缀与可接受后缀转成大写后比较
      return true;
    else
      return false;
  }
 public String getEnds() {
 return ends;
 }
 public void setEnds(String ends) {
 this.ends = ends;
 }
 public String getDescription() {
 return description;
 }
 public void setDescription(String description) {
 this.description = description;
 }
}

希望本文所述对大家的java程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, preference
保存记录
java实现保存聊天记录、java preference、preference 保存list、如何保存微信聊天记录、微信怎么保存聊天记录,以便于您获取更多的相关知识。

时间: 2024-09-16 23:35:52

Java使用Preference类保存上一次记录的方法_java的相关文章

java中struts2实现文件上传下载功能实例解析_java

本文实例讲述了java中struts2实现文件上传下载功能实现方法.分享给大家供大家参考.具体分析如下: 1.文件上传 首先是jsp页面的代码 在jsp页面中定义一个上传标签   复制代码 代码如下: <tr>      <td align="right" bgcolor="#F5F8F9"><b>附件:</b></td>      <td bgcolor="#FFFFFF">

win7电脑设置不保存U盘使用记录的方法

win7电脑设置不保存U盘使用记录的方法   具体方法如下: 一. 往系统里面添加环境变量devmgr_shownonpresent_devices,值为1; 二. 运行设备管理器,打开查看隐藏设备.展开磁盘驱动器.储存卷两处,把和U盘有关的Kill掉; 三. 打开计算机管理,把可移动存储相关的删除; 四. 把一中加入的系统环境变量删除; 到此为止,现在有可能还不能全部删除注册表中的usb使用记录,在HKEY_LOCAL_MACHINESYSTEMControlSet002EnumUSBSTOR

Java语言class类用法及泛化(详解)_java

这篇文章主要介绍了Java语言class类用法及泛化(详解),大家都知道Java程序在运行过程中,对所有的对象进行类型标识,也就是RTTI.这项信息记录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建,具体内容介绍如下: 说白了就是: Class类也是类的一种,只是名字和class关键字高度相似.Java是大小写敏感的语言. Class类的对象内容是你创

Java中ArrayList类的用法与源码完全解析_java

System.Collections.ArrayList类是一个特殊的数组.通过添加和删除元素,就可以动态改变数组的长度. 一.优点1. 支持自动改变大小的功能 2. 可以灵活的插入元素 3. 可以灵活的删除元素 二.局限性跟一般的数组比起来,速度上差些 三.添加元素1.publicvirtualintAdd(objectvalue); 将对象添加到ArrayList的结尾处 ArrayList aList = new ArrayList(); aList.Add("a"); aLis

JAVA使用commos-fileupload实现文件上传与下载实例解析_java

首先给大家介绍一文件的上传 实体类 import java.sql.Timestamp; /** * * @Decription 文件上传实体类 * */ public class Upfile { private String id;// ID主键 使用uuid随机生成 private String uuidname; // UUID名称 private String filename;//文件名称 private String savepath; // 保存路径 private Timest

JavaWeb实现文件上传与下载的方法_java

文件上传概述 实现web开发中的文件上传功能,需完成如下二步操作: 在web页面中添加上传输入项 在servlet中读取上传文件的数据,并保存到本地硬盘中. 如何在web页面中添加上传输入项? <input type="file">标签用于在web页面中添加文件上传输入项,设置文件上传输入项时须注意: 1.必须要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据. 2.必须把form的enctype属值设为multipart/form-data.设置该值

java实现基于SGIP协议开发联通短信的方法_java

本文实例讲述了java实现基于SGIP协议开发联通短信的方法.分享给大家供大家参考.具体如下: 近段时间,由于公司的业务需要,开发出了联通短信.此文章的编写也是根据网上的一些示例来完成的.闲话少说,下面来看代码:(运行此程序的时候需要导入华为的开发包,此包可以到网上下载) 下行: public class Mt { private static String SPNumber = "**********"; //接入号码 private static String ChargeNumb

Java读取properties配置文件时,出现中文乱码的解决方法_java

如下所示: public static String getConfig(String key) { Properties pros = new Properties(); String value = ""; try { pros.load(new InputStreamReader(Object.class.getResourceAsStream("/properties.properties"), "UTF-8")); value = pr

java识别一篇文章中某单词出现个数的方法_java

本文实例讲述了java识别一篇文章中某单词出现个数的方法.分享给大家供大家参考.具体如下: 1. java代码: import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.StringTokenizer; import java.util.regex.Matche