我正在尝试用 Java 制作一个 Store Register 应用程序(为了好玩),但我对这门语言很陌生,并且不太确定如何从我所在的位置继续进行。目前,我成功创建了一个登录系统,因此当我点击登录时,用户登录就可以工作。现在,我想要做到这一点,以便当我单击“登录”时,它会将我带到选项菜单。我不想在用户单击登录时打开一个新的 JFrame,而是希望所有事情都发生在一个 JFrame 中。另外,我不希望你们为我做这件事,但我想知道如何解决这个问题。
这是我供引用的代码:
package schoolstoreregister;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SchoolStoreRegister extends JFrame {
//declaring our swing components
JLabel l_name,l_pass;
JTextField t_name;
JPasswordField t_pass; //A special JTextField but hides input text
JButton button;
Container c;
boolean checkLogin = false;
//a inner class to handling ActionEvents
handler handle;
//a separate class for processing database connection and authentication
database db;
SchoolStoreRegister()
{
super("School Store Register");
c=getContentPane();
c.setLayout(new FlowLayout());
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int) screenSize.getWidth();
int height = (int) screenSize.getHeight();
//extra classes
db=new database();
handle =new handler();
//swing components
//l_name=new JLabel("Username");
l_pass=new JLabel("Password");
//t_name=new JTextField(10);
t_pass=new JPasswordField(10);
button=new JButton("Login");
//adding actionlistener to the button
button.addActionListener(handle);
//add to contaienr
// c.add(l_name);
//c.add(t_name);
c.add(l_pass);
c.add(t_pass);
c.add(button);
//visual
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(width,height);
}
public static void main(String args[])
{
@SuppressWarnings("unused")
SchoolStoreRegister sample=new SchoolStoreRegister();
}
class handler implements ActionListener //This is triggered whenever the user clicks the login button
{
public void actionPerformed(ActionEvent ae) //checks if the button clicked
{
if(ae.getSource()==button)
{
char[] temp_pwd=t_pass.getPassword();
String convert = t_pass.getText();
int passID = Integer.parseInt(convert);
//The entered username and password are sent via "checkLogin()" which return boolean
if(db.checkLogin(passID))
{
//a pop-up box
JOptionPane.showMessageDialog(null, "You have logged in successfully","Success", JOptionPane.INFORMATION_MESSAGE);
checkLogin = true;
}
else
{
//a pop-up box
JOptionPane.showMessageDialog(null, "Login failed!","Failed!!", JOptionPane.ERROR_MESSAGE);
checkLogin = false;
}
}//if
}//method
}//inner class
}
最佳答案
尝试使用 CardLayout
将 JFrame
中的一个面板(登录屏幕)替换为另一个面板(主屏幕)。
关于Java 商店注册应用程序导航机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477935/