2014-09-26 69 views
0

所以我一直在使用java的这个程序来存储用户数据。我已经使用sqlite数据库进行登录和注册屏幕。现在,用户登录后,主屏幕将打开,用户可以在其中添加内容(现在只是文本)。该文本以程序主屏幕上的JLabel形式存储。但我不知道的是,如何打开上次使用该程序时用户所更改的所有内容?当然,每个用户都必须有所不同。如何为特定用户保存程序的确切状态?

+0

获得用户ID时与ID – 2014-09-26 14:14:35

+0

这是我的第一个想法登录.save用户数据,我可能会找到一种方法将数据保存在另一个表,但我怎么打开数据和目前它例如,JLabel窗体在我的屏幕上? – SenGaxD 2014-09-26 14:26:06

回答

0

答案背后的前提是:

  • 阅读用户已更改的所有标签/添加/等...
  • 保存它的地方在那里你可以再次阅读。再次

覆盖

  • 加载它,一旦用户登录你的JFrame的WindowClosing

    public void windowClosing(WindowEvent ev) { 
        String savedData = ""; 
        for (Component c: getComponents()) { 
         if (c instanceof JLabel) { 
          savedData += ((JLabel)c).getText() + "\n"; 
         } 
        } 
        //Save Data to file 
        //OR write to sqlite database in the current users row 
    } 
    

    JFrame frame = new JFrame("Title"); 
    frame.addWindowListener(new WindowAdapter() { 
        public void windowClosing(WindowEvent ev) { 
    
        } 
    }); 
    

    通过每个控制的框架(或任何你存储它们)运行

    所以,现在你已经保存了这些信息,如果该用户在另一次登录,你会希望再次加载它。为此,您可以覆盖WindowOpened事件。或者,也可以在登录成功后调用您所做的功能,如果这样做不会创建新窗口。

    public Form1() { 
        initializeComponents(); 
        addWindowListener(new WindowAdapter() { 
         @Override 
         public void windowOpened(WindowEvent arg0) { 
          //Read data (Depends on the method you choose to save) 
          Label label = new Label(data); 
          add(label); 
         } 
        }); 
    } 
    
  • +0

    谢谢你,帮了很多 – SenGaxD 2014-09-26 15:55:55

    相关问题