2014-09-26 5 views
0

그래서 저는이 프로그램을 사용자 용 데이터를 저장하는 java로 만들었습니다. 이미 sqlite 데이터베이스를 사용하여 로그인 및 등록 화면을 만들었습니다. 이제 사용자가 로그인하면 주 화면이 열리고 사용자가 항목을 추가 할 수 있습니다 (지금은 텍스트 만 가능). 이 텍스트는 프로그램의 주 화면에 JLabels 형식으로 저장됩니다. 하지만 내가 모르는 부분은 지난 번 사용자가 프로그램을 사용하면서 변경 한 모든 것을 어떻게 열지? 그리고 물론 각 사용자마다 다를 수 있습니다.특정 사용자에 대한 프로그램의 정확한 상태를 저장하는 방법은 무엇입니까?

+0

GET 사용자 ID 때 로그인 .save 사용자 처음 아이디어 해당 ID –

+0

와 데이터, 그리고 난 아마 다른 테이블에 데이터를 저장하는 방법을 찾을 수 있지만 내가 어떻게 데이터를 열고 않고 그것을 제시 예를 들어, 화면에 JLabel 양식이 있습니까? – SenGaxD

답변

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

    관련 문제