用SwingUtilities.invokeLater(new Runnable{
run(){
}
});

解决方案 »

  1.   


    import java.sql.*;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.*;//定义一个主界面的类
    public class zhujiemian {
    JFrame JJ=new JFrame();
    JPanel JP=new JPanel();
    JTextField user, password;
    public void zong() {
    JJ.setVisible(true);
    JJ.add(JP);
    JJ.setTitle("QQ登录程序");
    JJ.setSize(500,300);
    JJ.setLocation(200,100);
    }
    public void denglu() {
    JP.setLayout(null);
    JButton JB1=new JButton("登录");
    JButton JB2=new JButton("退出");
    JB1.setBounds(100,150,90,28);
    JB2.setBounds(300,150,90,28);
    JP.add(JB1);
    JP.add(JB2);
    JB1.addMouseListener(new JB1Listener());
    JB2.addMouseListener(new JB2Listener());
    }
    class JB1Listener implements MouseListener {
    JFrame JF=new JFrame();
    JPanel JP=new JPanel();
    public void mouseReleased(MouseEvent e) {
    if (queryTable()) {
    JF.setVisible(true);
    JF.setTitle("QQ登录程序");
    JF.setSize(200,400);
    JF.setLocation(1150,30);
    JJ.setVisible(false);
    JF.add(JP);
    JP.setLayout(null);
    JButton jb1=new JButton("空间  ");
    jb1.setBounds(80,60,30,28);
    JP.add(jb1);
    JButton jb2=new JButton("微博  ");
    jb2.setBounds(130,60,30,28);
    JP.add(jb2);
    JLabel jb=new JLabel("未央不见");
    jb.setBounds(90,0,70,70);
    JP.add(jb);
    }
    }
    public void mouseClicked(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    public void mouseEntered(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    @Override
    public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    }
    class JB2Listener implements MouseListener {
    public void mouseReleased(MouseEvent e) {
    System.exit(0);
    }
    public void mouseClicked(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    public void mouseEntered(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    @Override
    public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub
    }
    }
    public void Label() {
    JLabel JL1=new JLabel("QQ号码");
    JL1.setBounds(100,28,50,50);
    user=new JTextField(10);
    user.setBounds(165,40,150,25);
    JLabel JL2=new JLabel("  密码");
    JL2.setBounds(100,68,50,50);
    password=new JTextField(10);
    password.setBounds(165,80,150,25);
    JP.add(JL1);
    JP.add(JL2);
    JP.add(user);
    JP.add(password);
    }
    //连接接到数据库
    public boolean queryTable() {
    boolean result=false;
    try {
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/qq","root","a3635114");
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("select user from qqmanager where user="+user.getText()+" and passowrd="+password.getText());
    if (rs.next()) {
    result=true;
    }
    conn.close();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return result;
    }
    public static void main(String args[]) {
    zhujiemian z=new zhujiemian();
    z.Label();
    z.zong();
    z.denglu();
    }
    }
      

  2.   

    注意user和password是TextField,必须先用getText方法获得输入的字符串,再加到sql中
    查表那个方法我擅自给你改名叫queryTable了,叫createTable太不恰当
    mouseReleased无法返回值,但是想获得一个量不一定需要返回值,你的例子里用两个方法都能获取的成员user和password就行
    其实不一定非要用MouseListener,你这个例子里用ActionListener更好
    awt/swing快过时了,推荐JavaFX
      

  3.   

    Class.forName("com.mysql.jdbc.Driver");

    import com.mysql.jdbc.Driver;
    DriverManager.registerDriver(new Driver());
    相比,带来什么好处?
      

  4.   

    如果只导入:import com.mysql.jdbc.Driver;不DriverManager.registerDriver(new Driver());

    Class.forName("com.mysql.jdbc.Driver");
    有什么区别?
      

  5.   

    Class.forName("com.mysql.jdbc.Driver");

    import com.mysql.jdbc.Driver;
    DriverManager.registerDriver(new Driver());
    相比,带来什么好处?
    @see
    http://xm-king.iteye.com/blog/798331
      

  6.   

    如果只导入:import com.mysql.jdbc.Driver;不DriverManager.registerDriver(new Driver());

    Class.forName("com.mysql.jdbc.Driver");
    有什么区别?
    import只是给编译器看的,运行时jvm根本不知道有它;Class.forName()是加载类的代码,类中静态块中的代码被执行,加载了驱动
      

  7.   

    如果只导入:import com.mysql.jdbc.Driver;不DriverManager.registerDriver(new Driver());

    Class.forName("com.mysql.jdbc.Driver");
    有什么区别?
    import只是给编译器看的,运行时jvm根本不知道有它;Class.forName()是加载类的代码,类中静态块中的代码被执行,加载了驱动
    明白了,多谢。
      

  8.   

    “awt/swing快过时了,推荐JavaFX。”fx有哪些优势?
      

  9.   

    都是jdbc最基本的代码,先看看书或api吧,有具体问题再问
      

  10.   

    都是jdbc最基本的代码,先看看书或api吧,有具体问题再问
    嗯 主要是那个try catch 不太懂。 其他明白了
      

  11.   

    讲Java的书里一般都会有类似的代码,初学jdbc会用就行了,以后慢慢就懂了