[英]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.