gpt4 book ai didi

java - 无法编译的源代码错误?

转载 作者:行者123 更新时间:2023-12-01 17:07:32 24 4
gpt4 key购买 nike

当我运行程序时,我收到此消息。我该如何纠正这个错误?我通过评论标记了消息中所说的那一行!

消息:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: javax.swing.JPanel.add at login.Login.frame(Login.java:52) at login.Login.(Login.java:24) at login.Login.main(Login.java:103) BUILD SUCCESSFUL (total time: 16 seconds)

和我的代码

package login;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;


public class Login
{

Connection con;
Statement st;
ResultSet rs;

JFrame f = new JFrame("User login");
JLabel l = new JLabel("Username:");
JLabel l1 = new JLabel("Password:");
JTextField t = new JTextField(10);
JTextField t1 = new JTextField(10);
JButton b = new JButton("login");


public Login()
{
connect();
frame(); //this line:at login.Login.<init>(Login.java:24)//

}

public void connect()
{

try
{
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);

String db = "jdbc:odbc:login";
con = DriverManager.getConnection(db);
st = con.createStatement();
}
catch(Exception ex)
{
}
}

public void frame()
{
f.setSize(600,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);

JPanel p = new JPanel();
p.add(1);//this line:at login.Login.frame(Login.java:52)//
p.add(t);
p.add(11);
p.add(t1);
p.add(b);

f.add(p);

b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
String user = t.getText().trim();
String pass = t1.getText().trim();

String sql = "select user,pass from login where user = '"+user+"'and pass = '"+pass+"'";
rs = st.executeQuery(sql);

int count = 0;
while(rs.next())
{
count = count + 1;
}

if(count == 1)
{
JOptionPane.showMessageDialog(null,"User Found,Access Generated!");
}
else if(count > 1)
{
JOptionPane.showMessageDialog(null, "Duplicate User,Access Denied!");
}
else
{
JOptionPane.showMessageDialog(null,"User not Found");
}
}
catch(Exception ex)
{
}

}
});
}

public static void main(String[] arg)
{
new Login(); //this line:at login.Login.main(Login.java:103)//``
}

}

最佳答案

  1. 使用更好的变量名称,以便阅读您代码的人(包括 future 的您)可以知道发生了什么。

  2. 正如 Hovercraft Full Of Eels 在他们的评论中所说,不要运行无法编译的代码。编译器错误...不完全是您的 friend ,但它们会帮助您。

  3. JPanel 有多个 .add() 方法,但没有一个方法只接受 int 作为参数,这就是您在 login.Login.frame(Login.java:52) 处所拥有的,然后再次从那里向下两行,这就是导致您的代码无法编译的原因。我认为你实际上指的是 l (el) 和 l1 (el one) 而不是 1 (一) 和 11 (十一),这反馈到上面的 #1:使用更好的变量名称!

关于java - 无法编译的源代码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24802670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com