2013-07-26 30 views
0

以下代码是用于登录和密码的弹出窗口(JOptionPane)。 我该如何让我的Java程序记住这两个字符串:logpass,这样当用户关闭程序并下次打开它时,上一次插入的logpass会有默认值吗?如何保存Java中的最后一个输入字符串?

import javax.swing.*; 


    public class TestJP { 

     public static String log; 
     public static String pass; 

     public static void main(String[] args) { 



        JTextField login = new JTextField(5); 
        JPasswordField password = new JPasswordField(5); 

        JPanel myPanel = new JPanel(); 
        myPanel.add(new JLabel("login:")); 
        myPanel.add(login); 
        myPanel.add(Box.createHorizontalStrut(15)); 
        myPanel.add(new JLabel("password:")); 
        myPanel.add(password); 

        int result = JOptionPane.showConfirmDialog(null, myPanel, 
          "Please Login", JOptionPane.OK_CANCEL_OPTION); 
        if (result == JOptionPane.OK_OPTION) { 
        log = login.getText(); 
        pass = password.getText(); 
        System.out.println("login: " + log); 
        System.out.println("password: " + pass); 
        } 

       } 

     } 

回答

2

您可以选择多种选择,您选择的选项将归结为您想要的选项。

一句警告。如果我是你,我不会保存密码,但这些方法都不是黑客验证的。

,你可以:

  • 使用Properties API和保存的内容从一个文件
  • 使用Preferences API这需要照顾persistenace为您
  • 某种类型的数据库系统的负载/。您可以使用类似H2hsql(例如)作为单用户数据库
  • 您可以简单地将内容写入平面文件。

各有利弊。你需要权衡每一个,并决定哪一个最符合你的直接需求。

个人而言,我喜欢Preferences API,但它的确意味着您无法控制数据存储位置。

+0

序列化?? – nachokk

+0

@nachokk这是很多工作的小增益,特别是当你考虑到你可以使用'Properties#save'来代替,并保存所有关于'ObjectStream'和施法等的东西:P - 恕我直言。尽管我猜测这可能属于*“平面文件”*。这也是我可能不考虑使用数据库的原因之一。有很多涉及很少的利益(在问题的背景下) – MadProgrammer

相关问题