2013-07-16 1 views
0

사용자가 계정을 만든 다음 사용자 이름, 암호를 변경하고 계정에 액세스 할 수있는 암호 프로그램을 만들려고합니다.다른 클래스의 class1에서 생성 된 변수를 사용하는 방법은 무엇입니까?

클래스 2 개

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class mainPage extends JFrame { 
    create_account crAcc = new create_account(); 
    change_username chU = new change_username(); 
    change_password chPW = new change_password(); 
    sign_in signIn = new sign_in(); 

    private JButton create_account, change_username, change_password, signIn_button; 

    public mainPage(){ 
     super("Password Programme"); 

     setPreferredSize (new Dimension (400, 100)); 
     setLayout (null); 

     create_account = new JButton("Create an Account"); 
     add(create_account); 

     change_username = new JButton("Change Username"); 
     add(change_username); 

     change_password = new JButton("Change Password"); 
     add(change_password); 

     signIn_button = new JButton("Sign in and Access Files"); 
     add(signIn_button); 


     create_account.setBounds (10, 20, 150, 20); 
     change_username.setBounds (10, 50, 150, 20); 
     change_password.setBounds (10, 80, 150, 20); 
     signIn_button.setBounds (10, 110, 200, 20); 

     HandlerClass handler = new HandlerClass(); 
     create_account.addActionListener(handler); 
     change_username.addActionListener(handler); 
     change_password.addActionListener(handler); 
     signIn_button.addActionListener(handler); 
    } 

    private class HandlerClass implements ActionListener{ 
     public void actionPerformed(ActionEvent event){ 
      if(event.getSource()==create_account) { 
       crAcc.setLocationRelativeTo(null); 
       crAcc.setSize(300,200); 
       crAcc.setVisible(true); 
      } 
      if(event.getSource()==change_username) { 
       chU.setLocationRelativeTo(null); 
       chU.setSize(300,200); 
       chU.setVisible(true); 
      } 
      if(event.getSource()==change_password) { 
       chPW.setLocationRelativeTo(null); 
       chPW.setSize(300,200); 
       chPW.setVisible(true); 
      } 
      if(event.getSource()==signIn_button) { 
       signIn.setLocationRelativeTo(null); 
       signIn.setSize(300,200); 
       signIn.setVisible(true); 
      } 
     } 
    } 
} 

클래스 3

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 

public class create_account extends JFrame{ 
    private String u1, pw1; 
    private JLabel cU1, cpw1, statusBar; 

    public JTextField create_u1; 
    public JPasswordField create_pw1; 
    private JButton change; 

    change_username objOfClass4 = new change_username(); 

    public create_account() { 
     super("Create Account"); 
     setPreferredSize (new Dimension (400, 85)); 
     setLayout (null); 

     statusBar = new JLabel("Create a username"); 
     add(statusBar, BorderLayout.SOUTH);   
     statusBar.setBounds(20, 110, 250, 30); 

     cU1 = new JLabel("Username"); 
     cpw1 = new JLabel("Password"); 
     create_u1 = new JTextField(10); 
     create_pw1 = new JPasswordField(10); 

     cU1.setBounds(10, 10, 150, 30); 
     create_u1.setBounds(100, 10, 100, 30); 
     cpw1.setBounds(10, 50, 150, 30); 
     create_pw1.setBounds(100, 50, 100, 30); 

     add(create_u1); 
     add(cU1); 

     create_u1.addActionListener(new ActionListener() 
      { 
       public void actionPerformed(ActionEvent event){ 
        JOptionPane.showMessageDialog(null, "Username saved. Now create a password"); 

        statusBar.setText("Create a password"); 

        add(cpw1); 
        add(create_pw1); 

        cpw1.repaint(); 
        create_pw1.repaint(); 

        create_pw1.requestFocus();     

        objOfClass4.setUserName(create_u1.getText()); 
       } 
      } 
     ); 

     create_pw1.addActionListener(new ActionListener() 
      { 
       public void actionPerformed(ActionEvent event){ 
        JOptionPane.showMessageDialog(null, "Password saved"); 

        statusBar.setText("Account created. Return to main programme");      

        statusBar.requestFocus(); 

       } 
      } 
     ); 

    } 

} 

클래스 4

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 

public class change_username extends JFrame { 

    private JLabel uT1, pwT, uCh, statusBar; 
    private JTextField username_input, username_change; 
    private JPasswordField password_input; 

    private String userName, passWord; 


    public String getUserName() { 
     return this.userName; 
    } 

    public void setUserName(String givenUserName) { 
     this.userName = givenUserName; 
    } 

    public change_username() { 
     super("Change Username"); 
     setPreferredSize (new Dimension (400, 85)); 
     setLayout (null); 

     statusBar = new JLabel("Enter your username"); 
     add(statusBar, BorderLayout.SOUTH); 
     statusBar.setBounds(20, 130, 250, 30); 

     uT1 = new JLabel("Username"); 
     username_input = new JTextField(10); 

     pwT = new JLabel("Password"); 
     password_input = new JPasswordField(10); 

     uCh = new JLabel("New Username"); 
     username_change = new JTextField(10); 

     uT1.setBounds(10, 10, 150, 30); 
     username_input.setBounds(100, 10, 100, 30); 
     pwT.setBounds(10, 50, 150, 30); 
     password_input.setBounds(100, 50, 100, 30);   
     uCh.setBounds(10, 90, 150, 30); 
     username_change.setBounds(100, 90, 100, 30); 

     add(uT1); 
     add(username_input); 

     username_input.addActionListener(new ActionListener() 
      { 
       public void actionPerformed(ActionEvent event){ 
        statusBar.setText("Enter your password"); 

        add(pwT); 
        add(password_input); 

        pwT.repaint(); 
        password_input.repaint(); 

        password_input.requestFocus(); 

        System.out.println(getUserName()); 

       } 
      } 
     );  
    } 

} 

나는 액세스하려면 : 지금까지 어디에 있어요

입니다 사용자가 입력 한 사용자 이름 e 클래스 JTextField 클래스 4에서.

다른 모든 작업을 수행하기 전에 println()을 사용하여 계정을 만들 때 입력 한 사용자 이름을 출력하고 싶습니다. 나는 게터를 포함하여 여러 가지 방법을 시도했지만 아무도 일하지 않았고 막혔다.

'create_username'클래스에서 만든 사용자 이름을 출력 할 수있는 정확한 코드를 누군가가 제공 할 수 있습니까? 나는 이것을 달성하면 나머지 프로그램을 만들 수 있다고 생각합니다.

감사

+2

Java에서 명명 규칙을 알고 있다면 왜 무시할 것입니까? 일명 코드를 읽는 일은 훨씬 어려워집니다. – sunrize920

+3

코드를 줄이고 문제를 자세히 설명해 주시고 [** SSCCE **] (http://sscce.org/)를 읽어 보시고 어떻게하면 더 잘 이해할 수 있는지 알아보십시오. 질문을하기 위해서. – Azad

+0

내가 말한 것은 당신들이 사람들을 사용하지 않는 것을 좋아하지 않는다는 것을 알고 있다는 것이 었습니다. 나는 그들이 아직 무엇인지 알지 못하고 내가 나중에 배우려고하는 것으로서 그들을 사용하지 않았습니다. –

답변

1

변수

public class change_username extends JFrame { 

    private JLabel uT1, pwT, uCh, statusBar; 
    private JTextField username_input, username_change; 
    private JPasswordField password_input; 

    // ADD IT HERE ************************************** 
    private String userName, passWord; 

    public String getUserName(){ 
     return this.userName; 
    } 

    public void setUserName(String givenUserName){ 
     this.userName = givenUserName; 
    } 

    // ************************************** 


    public change_username() { 
     super("Change Username"); 
     setPreferredSize (new Dimension (400, 85)); 
     setLayout (null); 

    // YOUR CODE HERE 


// CLASS 3 
public class create_account extends JFrame{ 
    private String u1, pw1; 
    class4 objClass4 = new class4(); 
    u1 = objClass4.getUserName(); 

    // YOUR code here....... 

반복에게 암호 같은 두 개인 인스턴스를 생성하고 당신이 잘되어야합니다. 또한 리스너가 활성화되면 클래스의 객체를 사용하여 userName 및 Password를 설정합니다. 당신이 여기에서 앞으로 나아갈 수있는 방법에 대해 알고 있기를 바랍니다.

+0

어떤 클래스에 있습니까? – johnchen902

+0

나는 (삭제 된) 클래스 2를 선호한다. – johnchen902

+0

@ JNL : 그 장소는 어디에 두어야합니까? –

관련 문제