简体   繁体   English

从一个JFrame获取信息并将其放置在另一个

[英]Getting info from one JFrame and placing it in another

I am trying to get the userNameFromLogin ** variable from my **LoginBtnAction() method and have that display at the bottom of my WelcomeFrame() . 我想从我的** LoginBtnAction()方法得到userNameFromLogin **变量 ,并有显示在我的WelcomeFrame的底部()。 I am having an issue actually getting it to show up on my WelcomeFrame() . 我在将其显示在WelcomeFrame()上时遇到了一个问题。 Could someone please guide me on what I am doing wrong, it compiles so it is going to be a logic error. 有人可以指导我我做错了什么,它可以编译,因此将是逻辑错误。 I will post my code below. 我将在下面发布我的代码。 I have a global variable declared at the top of my code used in my LoginBtnAction() that is called private static String userNameFromLogin; 我在LoginBtnAction()中使用的代码顶部声明了一个全局变量,该变量称为私有静态String userNameFromLogin;

Code: 码:

public void LoginFrame()
{
  //creates new frame with 'choiceFrame' variable
  loginFrame = new JFrame("Employee Login!");

  //sets size of frame
  loginFrame.setSize(215,125);

  //frame will close when you hit close button
  loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  //displays frame in middle of page
  loginFrame.setLocationRelativeTo(null);

  //initializes labels and what they will display
  userName = new JLabel("Username");
  password = new JLabel("Password");

  //initializes textfields and size
  userNameTextBox = new JTextField(10);
  passwordTextBox = new JPasswordField(10);

  //creates new panel, hold all components and displays them on frame
  JPanel loginPanel = new JPanel();

  //sets panel background to light gray
  loginPanel.setBackground(Color.lightGray);

  //adds label to panel
  loginPanel.add(userName);

  //sets textield background to light gray
  userNameTextBox.setBackground(Color.lightGray);

  //add textfieled 'employeeFnameTextbox' to panel
  loginPanel.add(userNameTextBox);

  //adds label to panel
  loginPanel.add(password);

  //sets textield background to light gray
  passwordTextBox.setBackground(Color.lightGray);

  //add textfieled 'employeeFnameTextbox' to panel
  loginPanel.add(passwordTextBox);

  //sets 'loginButton' background/foreground to light gray
  loginButton.setBackground(Color.lightGray);
  loginButton.setForeground(Color.darkGray);

  //adds button to panel
  loginPanel.add(loginButton);     

  //adds panel to frame   
  loginFrame.add(loginPanel);

  //sets 'welcomeFrame' to visible
  loginFrame.setVisible(true);  
}

/**
When the login button is pressed it does required actions 
*/
public void LoginBtnAction() 
{                                                                                 
  loginButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'loginButton' is pressed
           public void actionPerformed(ActionEvent e)
           {                   
              try
              {                   
                 //gets texts from specified text fields and assigns to instance variable
                 userNameFromLogin = userNameTextBox.getText().trim();
                 String password = passwordTextBox.getText().trim();

                 ArrayList<String> loginArray = new ArrayList<String>();
                 Date date= new Date(); 

                 //sql statement that check if username and password exist
                 String sql5 = "SELECT User_name,Password FROM Employee_Table WHERE User_name = '" + userName + "' and Password = '" + password + "'";

                 //execute query, assigning all records in db to 'rs5'
                 rs5 = st.executeQuery(sql5);

                 //instance variables
                 int count = 0;

                 //loops until reaches end up 'rs5'
                 while(rs5.next())
                 {
                    count++;
                 }

                 //statement and actions if 'userName' and 'password' match
                 if(count == 1)
                 {
                    welcomeFrame.setVisible(true);
                    loginFrame.setVisible(false);

                    userNameTextBox.setText("");
                    passwordTextBox.setText("");

                    loginArray.add(userNameFromLogin);
                    String timeStamp = ("User: " + loginArray.get(0) + "\n" + "Time Stamp: " + new Timestamp(date.getTime()));

                    JOptionPane.showMessageDialog(null, timeStamp, "User Log", JOptionPane.INFORMATION_MESSAGE);

                    userNameLabel.setText(userNameFromLogin);                       

                 }

                 //statement and actions if 'userName' and 'password' do not match 
                 else
                 {
                    JOptionPane.showMessageDialog(null, "Username or password incorrect!");
                    userNameTextBox.setText("");
                    passwordTextBox.setText("");
                 }   
              }

              catch(Exception ex)
              {

              }               
           }
        });
}

/**
Method that develops the Welcome Frame  
*/
public void WelcomeFrame()
{
  //creates new frame with 'welcomeFrame' variable
  welcomeFrame = new JFrame("Welcome!");

  //sets size of frame
  welcomeFrame.setSize(625,500);

  //frame will close when you hit close button
  welcomeFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  //displays frame in middle of page
  welcomeFrame.setLocationRelativeTo(null);

  //creates new panel, hold all components and displays them on frame
  JPanel welcomePanel = new JPanel();

  //sets welcomePanel to null
  welcomePanel.setLayout(null);

  //sets label to image                  
  bannerImage = new ImageIcon(getClass().getResource("moes.jpg"));
  bannerLabel = new JLabel(bannerImage);

  //sets location of image on panel
  bannerLabel.setBounds(0, 0, 610, 85);

  //adds image to panel
  welcomePanel.add(bannerLabel);

  //set label text
  versionLabel = new JLabel("current version: v4.0");

  //sets location of label on panel
  versionLabel.setBounds(485, 435, 120, 20);

  //add label to panel
  welcomePanel.add(versionLabel);

  //sets 'aboutTextArea' size and specs
  aboutTextArea = new JTextArea("This application is intended to benifit both the employees\n and most importantly"
                               +"the customers of Moes Barbeque");

  //sets textarea background to light gray
  aboutTextArea.setBackground(Color.lightGray);

  //sets location of textarea on panel
  aboutTextArea.setBounds(470, 80, 320, 300);

  //sets textarea visibility to false
  aboutTextArea.setVisible(false); 

  //add 'aboutTextArea' to panel
  welcomePanel.add(aboutTextArea);

  //sets panel background to light gray
  welcomePanel.setBackground(Color.white);

  //sets 'homeButton' background/foreground to light gray
  homeButton.setBackground(Color.white);
  homeButton.setForeground(Color.darkGray);

  //sets location of 'homeButton' on panel
  homeButton.setBounds(0, 120, 90, 20);

  //sets border of button to false
  homeButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(homeButton); 

  //sets 'employeeFormHomeButton' background/foreground to light gray
  employeeFormHomeButton.setBackground(Color.white);
  employeeFormHomeButton.setForeground(Color.darkGray);

  //sets location of 'employeeFormHomeButton' on panel
  employeeFormHomeButton.setBounds(0, 160, 145, 20);

  //sets border of button to false
  employeeFormHomeButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(employeeFormHomeButton); 

  //sets 'employeeSearchHomeButton' background/foreground to light gray
  employeeSearchHomeButton.setBackground(Color.white);
  employeeSearchHomeButton.setForeground(Color.darkGray);

  //sets location of 'employeeFormHomeButton' on panel
  employeeSearchHomeButton.setBounds(20, 190, 145, 20);

  //sets border of button to false
  employeeSearchHomeButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(employeeSearchHomeButton); 

  //sets 'customerFormHomeButton' background/foreground to light gray
  customerFormHomeButton.setBackground(Color.white);
  customerFormHomeButton.setForeground(Color.darkGray);

  //sets location of 'customerFormHomeButton' on panel
  customerFormHomeButton.setBounds(0, 230, 145, 20);

  //sets border of button to false
  customerFormHomeButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(customerFormHomeButton);

  //sets 'customerSearchHomeButton' background/foreground to light gray
  customerSearchHomeButton.setBackground(Color.white);
  customerSearchHomeButton.setForeground(Color.darkGray);

  //sets location of 'customerSearchHomeButton' on panel
  customerSearchHomeButton.setBounds(20, 260, 145, 20);

  //sets border of button to false
  customerSearchHomeButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(customerSearchHomeButton); 

  //sets 'aboutButton' background/foreground to light gray
  aboutButton.setBackground(Color.white);
  aboutButton.setForeground(Color.darkGray);

  //sets location of 'aboutButton' on panel
  aboutButton.setBounds(0, 300, 90, 20);

  //sets border of button to false
  aboutButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(aboutButton);  

  //sets 'logoutHomeButton' background/foreground to light gray
  logoutHomeButton.setBackground(Color.white);
  logoutHomeButton.setForeground(Color.darkGray);

  //sets location of 'logoutHomeButton' on panel
  logoutHomeButton.setBounds(0, 340, 90, 20);

  //sets border of button to false
  logoutHomeButton.setBorderPainted(false);

  //adds button to panel
  welcomePanel.add(logoutHomeButton); 

  userNameLabel.setBounds(300, 350, 120, 70);

  welcomePanel.add(userNameLabel);

  //adds panel to frame   
  welcomeFrame.add(welcomePanel);

  //sets 'welcomeFrame' to visible
  welcomeFrame.setVisible(false);
}   
/**
Performs the welcome button frame actions   
*/
public void WelcomeBtnAction() 
{                                                                                     
  homeButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              //sets 'welcomeFrame' visiblity to true
              welcomeFrame.setVisible(true);

              //sets size of frame
              welcomeFrame.setSize(625,500);

              //sets 'aboutTextArea' visibility to false
              aboutTextArea.setVisible(false);
           }
        });

  employeeFormHomeButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              employeeInputFrame.setVisible(true);
              welcomeFrame.setVisible(false);
           }
        });

  employeeSearchHomeButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              //sets 'searchFrame' to visible
              searchFrame.setVisible(true);

              //sets 'searchFrame' to different size when 'retrieveEmployeeButton' is pressed
              searchFrame.setSize(230,100);

              //sets 'employeeID' to visible 
              employeeID.setVisible(true);

              //sets 'employeeIDTextBox' to visible 
              employeeIDTextBox.setVisible(true);

              //sets 'employeeIDSearchButton' to visible 
              employeeIDSearchButton.setVisible(true);

              //sets 'customerID' to not visible
              customerID.setVisible(false);

              //sets 'customerIDTextBox' to not visible
              customerIDTextBox.setVisible(false);

              //sets 'customerIDSearchButton' to not visible
              customerIDSearchButton.setVisible(false);

              //sets 'welcomeFram; visibility to false
              welcomeFrame.setVisible(false);
           }
        });


  customerFormHomeButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              inputFrame.setVisible(true);
              welcomeFrame.setVisible(false);
           }
        });

  customerSearchHomeButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              //sets 'searchFrame' to visible
              searchFrame.setVisible(true);

              //sets 'searchFrame' to different size when 'retrieveEmployeeButton' is pressed
              searchFrame.setSize(230,100);

               //sets 'customerID' to visible
              customerID.setVisible(true);

              //sets 'customerIDTextBox' to visible
              customerIDTextBox.setVisible(true);

              //sets 'customerIDSearchButton' to visible
              customerIDSearchButton.setVisible(true);

              //sets 'customerID' to not visible
              employeeID.setVisible(false);

              //sets 'customerIDTextBox' to not visible
              employeeIDTextBox.setVisible(false);

              //sets 'customerIDSearchButton' to not visible
              employeeIDSearchButton.setVisible(false);

              //sets 'welcomeFrame' visibility to false
              welcomeFrame.setVisible(false);
           }
        });

  aboutButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              //sets size of frame
              welcomeFrame.setSize(820,500);

              //sets textarea visibility to true
              aboutTextArea.setVisible(true);
           }
        });


  logoutHomeButton.addActionListener(
        new ActionListener()
        {
           //method for events that will be performed when 'employeeFormButton' is pressed
           public void actionPerformed(ActionEvent e)
           {
              loginFrame.setVisible(true);
              welcomeFrame.setVisible(false);

              JOptionPane.showMessageDialog(null, "You have successfully logged out!");
           }
        });
}

I have made a JLabel in my WelcomeFrame() that holds the userNameFromLogin variable and I then place that onto my welcomePanel , but that is not working. 我已经在我的WelcomeFrame()中制作了一个JLabel,它保存了userNameFromLogin变量,然后将其放置到我的welcomePanel上 ,但这不起作用。 So if someone could guide me in the right direction of getting this variable onto my WelcomeFrame() I would appreciate it. 因此,如果有人可以引导我正确地将这个变量添加到我的WelcomeFrame()中,我将不胜感激。

Side note: I know I should not be using a null Layout and manually setting the bounds, but that is what is asked on this specific program. 旁注:我知道我不应该使用空Layout并手动设置边界,但这是对此特定程序的要求。

Thanks 谢谢

The userNameFromLogin doesn't have any value when you invoke the code below. 调用下面的代码时, userNameFromLogin没有任何值。 The variable is not bindable, so it doesn't update the text of the field when the value is changed. 该变量不可绑定,因此更改值时不会更新字段的文本。

JLabel userNameLabel = new JLabel(userNameFromLogin);

You will need to set this variable to the JLabel component, so it is necessary to declare the field JLabel userNameLabel outside the WelcomeFrame() method, and when the password match you do this userNameLabel.setText(userNameFromLogin); 您将需要将此变量设置为JLabel组件,因此有必要在WelcomeFrame()方法外部声明JLabel userNameLabel字段,并且当密码匹配时,执行此userNameLabel.setText(userNameFromLogin);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM