考虑:
public class LoginCumReg implements ActionListener, KeyListener {
private JFrame form;
private JTextField txtunm;
private JTextField txtnm;
private JTextField txteml;
private JButton cmdcreate;
private JPasswordField txtpass;
private JPasswordField txtpassreg;
private JButton cmdok;
private JLabel lblunm;
private JLabel lblpass;
private JLabel lbleml;
private JLabel lblpassreg;
private JLabel lblnm;
private JPanel panel_1;
public LoginCumReg() {
// Construct components
form = new JFrame("Sign Up");
form.getContentPane().setFont(
new Font("Plantagenet Cherokee", Font.BOLD, 18));
txtunm = new JTextField(5);
txtunm.addKeyListener(this);
txtunm.setBounds(637, 55, 100, 25);
txtnm = new JTextField(5);
txtnm.setBounds(637, 228, 100, 25);
txteml = new JTextField(5);
txteml.setBounds(637, 264, 100, 25);
cmdcreate = new JButton("Create Account");
cmdcreate.setBounds(527, 350, 188, 25);
txtpass = new JPasswordField(5);
txtpass.setBounds(637, 91, 100, 25);
txtpassreg = new JPasswordField(5);
txtpassreg.setBounds(637, 300, 100, 25);
cmdok = new JButton("OK");
cmdok.setBounds(527, 139, 100, 25);
lblunm = new JLabel("UserName");
lblunm.setBounds(527, 55, 73, 25);
lblpass = new JLabel("Password");
lblpass.setBounds(527, 91, 100, 25);
lbleml = new JLabel("Email ID");
lbleml.setBounds(527, 264, 100, 25);
lblpassreg = new JLabel("Password");
lblpassreg.setBounds(527, 300, 100, 25);
lblnm = new JLabel("Full Name");
lblnm.setBounds(527, 228, 100, 25);
// form.setResizable(false);
// Adjust size and set layout
form.setPreferredSize(new Dimension(800, 450));
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.getContentPane().setLayout(null);
// Add components
form.getContentPane().add(txtunm);
form.getContentPane().add(txtnm);
form.getContentPane().add(txteml);
form.getContentPane().add(cmdcreate);
form.getContentPane().add(txtpass);
form.getContentPane().add(txtpassreg);
form.getContentPane().add(cmdok);
form.getContentPane().add(lblunm);
form.getContentPane().add(lblpass);
form.getContentPane().add(lbleml);
form.getContentPane().add(lblpassreg);
form.getContentPane().add(lblnm);
cmdcreate.setActionCommand("Create Account");
cmdcreate.addActionListener(this);
cmdok.setActionCommand("Login");
JPanel panel = new JPanel();
panel.setBounds(502, 29, 254, 154);
panel.setFont(new Font("Palatino Linotype", Font.PLAIN, 14));
panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.RAISED,
null, null), "LOGIN", TitledBorder.LEADING, TitledBorder.TOP,
null, null));
panel.setBackground(SystemColor.controlHighlight);
form.getContentPane().add(panel);
panel_1 = new JPanel();
panel_1.setBounds(500, 204, 254, 186);
panel_1.setFont(new Font("Palatino Linotype", Font.PLAIN, 14));
panel_1.setBorder(new TitledBorder(new EtchedBorder(
EtchedBorder.RAISED, null, null), "SIGN UP",
TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel_1.setBackground(SystemColor.controlHighlight);
form.getContentPane().add(panel_1);
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(91, 139, 286, 101);
lblNewLabel.setIcon(new ImageIcon(
"C:\\Users\\JAsh\\Desktop\\Projects\\JAsh.png"));
form.getContentPane().add(lblNewLabel);
JPanel panel_2 = new JPanel();
panel_2.setBounds(77, 118, 315, 145);
panel_2.setBorder(new EtchedBorder(EtchedBorder.RAISED,
SystemColor.activeCaptionBorder, SystemColor.menu));
panel_2.setBackground(SystemColor.controlHighlight);
form.getContentPane().add(panel_2);
cmdok.addActionListener(this);
form.setResizable(false);
form.pack();
form.setVisible(true);
System.out.println("const..");
}
public static void main(String[] args) {
new LoginCumReg();
}
@Override
public void actionPerformed(ActionEvent ae) {
// TODO Auto-generated method stub
if (ae.getActionCommand().equals("Create Account")) {
new Registration(txtnm.getText(), txteml.getText(), new String(
txtpassreg.getPassword()));
form.setVisible(false);
}
if (ae.getActionCommand().equals("Login")) {
try {
if (txtunm.getText().equalsIgnoreCase("admin")
&& new String(txtpass.getPassword()).equals("admin")) {
form.setVisible(false);
new Admin();
} else {
DataBase db = new DataBase();
db.connect();
String sql = "SELECT * FROM LOGIN WHERE USERNAME='"
+ txtunm.getText() + "'";
ResultSet rs = db.getDDL(sql);
boolean found = false;
while (rs.next()) {
if (rs.getString("Password").equals(
new String(txtpass.getPassword()))) {
found = true;
form.setVisible(false);
String name = rs.getString("FullName");
Session.startSession(txtunm.getText(), name);
new FacultyWelcome();
}
}
if (!found)
JOptionPane.showMessageDialog(new JFrame(),
"Invalid Credentials");
db.close();
}
}
catch (Exception e) {
}
}
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
// JOptionPane.showMessageDialog(new JFrame(), arg0.getKeyChar() + "-" + arg0.getKeyCode());
}
}
上面的代码在我朋友的笔记本电脑上运行完美,在我的笔记本电脑上抛出这个错误。我已经使用 Java 7 在 Eclipse v4.2 (Juno) 上运行代码。
我还在笔记本电脑上测试并运行了很多 Java 程序,一切正常。这是唯一给出此类错误的程序。
我该如何解决这个问题?
原文由 Jash Parekh 发布,翻译遵循 CC BY-SA 4.0 许可协议
解决方案 1: 右键单击包含 main 方法的类。单击“运行方式”。单击“Java 应用程序”。键盘快捷键是:
Shift
+Alt
+X
,J
(同时按住Shift
和Alt
,按X
;然后松开Shift
和Alt
并按J
)。解决方案 2: 如 教授所述,请确保
java -version
和javac -version
相同。注意: 解决方案 1 是一种快速修复方法,对我和其他一些人都有效。它可能适合你,也可能不适合你。我认为解决方案 2 是解决它的正确方法。