还是JDBC中的问题,麻烦在进来看下 用SwingUtilities.invokeLater(new Runnable{run(){}}); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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(); }} 注意user和password是TextField,必须先用getText方法获得输入的字符串,再加到sql中查表那个方法我擅自给你改名叫queryTable了,叫createTable太不恰当mouseReleased无法返回值,但是想获得一个量不一定需要返回值,你的例子里用两个方法都能获取的成员user和password就行其实不一定非要用MouseListener,你这个例子里用ActionListener更好awt/swing快过时了,推荐JavaFX Class.forName("com.mysql.jdbc.Driver");与import com.mysql.jdbc.Driver;DriverManager.registerDriver(new Driver());相比,带来什么好处? 如果只导入:import com.mysql.jdbc.Driver;不DriverManager.registerDriver(new Driver());与Class.forName("com.mysql.jdbc.Driver");有什么区别? Class.forName("com.mysql.jdbc.Driver");与import com.mysql.jdbc.Driver;DriverManager.registerDriver(new Driver());相比,带来什么好处?@seehttp://xm-king.iteye.com/blog/798331 如果只导入:import com.mysql.jdbc.Driver;不DriverManager.registerDriver(new Driver());与Class.forName("com.mysql.jdbc.Driver");有什么区别?import只是给编译器看的,运行时jvm根本不知道有它;Class.forName()是加载类的代码,类中静态块中的代码被执行,加载了驱动 如果只导入:import com.mysql.jdbc.Driver;不DriverManager.registerDriver(new Driver());与Class.forName("com.mysql.jdbc.Driver");有什么区别?import只是给编译器看的,运行时jvm根本不知道有它;Class.forName()是加载类的代码,类中静态块中的代码被执行,加载了驱动明白了,多谢。 “awt/swing快过时了,推荐JavaFX。”fx有哪些优势? 都是jdbc最基本的代码,先看看书或api吧,有具体问题再问 都是jdbc最基本的代码,先看看书或api吧,有具体问题再问嗯 主要是那个try catch 不太懂。 其他明白了 讲Java的书里一般都会有类似的代码,初学jdbc会用就行了,以后慢慢就懂了 java应该学到什么程度??? 求助,文本比较,急 求助,用java写类似俄罗斯方块游戏时碰到得问题 我刚装好JDK1.4.2,怎么程序不能运行啊?!!! 如何简单的动态增加二维String数组的长度? 关于this变量 这段代码是反编译过的,请问它的原形是? 关于java包的问题 刚学Java,请大家帮助,implements 和 extends 有什么异同,50 帮我看一个程序!谢谢拉 求助 动态选择方法 如何实现 大虾帮忙给个思路~~ java io 异常,求教!
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();
}
}
查表那个方法我擅自给你改名叫queryTable了,叫createTable太不恰当
mouseReleased无法返回值,但是想获得一个量不一定需要返回值,你的例子里用两个方法都能获取的成员user和password就行
其实不一定非要用MouseListener,你这个例子里用ActionListener更好
awt/swing快过时了,推荐JavaFX
与
import com.mysql.jdbc.Driver;
DriverManager.registerDriver(new Driver());
相比,带来什么好处?
与
Class.forName("com.mysql.jdbc.Driver");
有什么区别?
与
import com.mysql.jdbc.Driver;
DriverManager.registerDriver(new Driver());
相比,带来什么好处?
@see
http://xm-king.iteye.com/blog/798331
与
Class.forName("com.mysql.jdbc.Driver");
有什么区别?
import只是给编译器看的,运行时jvm根本不知道有它;Class.forName()是加载类的代码,类中静态块中的代码被执行,加载了驱动
与
Class.forName("com.mysql.jdbc.Driver");
有什么区别?
import只是给编译器看的,运行时jvm根本不知道有它;Class.forName()是加载类的代码,类中静态块中的代码被执行,加载了驱动
明白了,多谢。
嗯 主要是那个try catch 不太懂。 其他明白了