在校小白,大神勿噴。
版本已簡化
連接mysql數據庫驗證用戶名及密碼進行登陸
public class mysql {
Connection con;
public mysql(){
try{
Class.forName("com.mysql.jdbc.Driver"); // 加載驅動
String url = "jdbc:mysql://localhost:3306/mysql?useSSL=false"; // 定義數據庫連接URL
con = DriverManager.getConnection(url, "root", ""); // 建立連接
}
catch(Exception e){
System.out.println("數據庫連接失敗");
}
}
}
這里使用的mysql包需要自行導入
try {
statement = ce.createStatement();
ResultSet rs=statement.executeQuery("select * from java where userName='"+name+"' and pwd='"+pwd+"'");}
連接數據庫成功后查詢數據庫以驗證用戶名及密碼
此版本為簡化版,附完整代碼如下:
LoginListener類:
public class LoginListener implements ActionListener{
private JTextField text_name;
private JPasswordField text_password;
private JFrame login;
public LoginListener(JFrame login,JTextField text_name,JPasswordField text_password){
//獲取登錄界面、賬號密碼輸入框對象
this.login=login;//獲取登錄界面
this.text_name=text_name;//獲取文本框
this.text_password=text_password;//獲取密碼框
}
public void actionPerformed(ActionEvent e)
{
//預封裝dim2的高度和寬度
Dimension dim2 = new Dimension(100,30);
//預封裝dim3的高度和寬度
Dimension dim3 = new Dimension(300,30);
//生成新界面
JFrame login2 = new JFrame("首頁");
login2.setSize(1450,700);
login2.setDefaultCloseOperation(3);
login2.setLocationRelativeTo(null);
login2.setFont(new Font("宋體",Font.PLAIN,14)); //宋體,14號字體
//在登錄失敗界面創建組件
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
//獲取用戶名以及密碼
String name=text_name.getText();
String pwd=text_password.getText();
mysql ml=new mysql();
Connection ce=ml.con;
//查詢數據庫並判斷用戶名和密碼是否正確
Statement statement;
try {
statement = ce.createStatement();
ResultSet rs=statement.executeQuery("select * from java where userName='"+name+"' and pwd='"+pwd+"'");
if (rs.next()) {
//登陸成功界面--提示文字
login2.setLayout(null);
JLabel jl1=new JLabel("歡迎使用星座查詢器,請您在下方的文本框中輸入您的出生月日。例如:1月20日則輸入1.20");
login2.add(jl1);
jl1.setBounds(0, 0, 800, 50);
jl1.setFont(new Font("宋體",Font.PLAIN,14));
//文本框相關定義
JTextField tf1=new JTextField();
login2.add(tf1);
tf1.setBounds(200, 70, 100,30);
//查詢按鈕相關定義
JButton jb1=new JButton();
login2.add(jb1);
jb1.setText("查詢");
jb1.setBounds(600, 70,100 , 30);
jb1.addActionListener(new ActionListener() {//監聽查詢按鈕
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String a=tf1.getText();//獲取文本框內容
double b=Double.parseDouble(a);//將文本框內容轉換為浮點型小數
if (b>=1.20&&b<=2.18) //判斷
{
//定義星座名稱、照片、性格分析
JLabel jl1JLabel=new JLabel();
jl1JLabel.setText("水瓶座");
login2.add(jl1JLabel);
jl1JLabel.setBounds(0, 100, 200, 50);
JLabel jl1=new JLabel();
Icon spIcon=new ImageIcon("ZP/011.PNG");
jl1.setIcon(spIcon);
login2.add(jl1);
jl1.setVisible(true);
jl1.setBounds(0, 120, 100, 100);//下方剩390
JLabel jlb1=new JLabel("<html>水瓶座:女性富知性理性,善於分析與思考,具有思想家的氣質,因此天生有清晰冷靜的頭腦和豐富的創造力。,"
+ "男性永遠都是時尚的頂尖人物。這類人思想是天馬行空的。</html>");
login2.add(jlb1);
jlb1.setBounds(0,210, 690, 70);
}else if (b>=2.19&&b<=3.20) {
JLabel jl2JLabel=new JLabel();
jl2JLabel.setText("雙魚座");
login2.add(jl2JLabel);
jl2JLabel.setBounds(100, 100, 100, 50);
JLabel jl2=new JLabel();
Icon spIcon=new ImageIcon("ZP/012.PNG");
jl2.setIcon(spIcon);
login2.add(jl2);
jl2.setVisible(true);
jl2.setBounds(100, 120, 100, 100);
JLabel jlb1=new JLabel("<html>雙魚座:女性::從表面上看,雙魚座的人內向而羞怯,然而內心常常是復雜而矛盾的,同時存在着善與惡,精神與物質等對立的爭扎,"
+ "男性:是最具備藝術氣質的一類人。他們敏銳而傷感。天生具有表演天賦,容易博得他人的同情</html>");
login2.add(jlb1);
jlb1.setBounds(0,290, 690, 70);
}else if (b>=3.21&&b<=4.19) {
JLabel jl3JLabel=new JLabel();
jl3JLabel.setText("白羊座");
login2.add(jl3JLabel);
jl3JLabel.setBounds(200, 100, 100, 50);
JLabel jl3=new JLabel();
Icon spIcon=new ImageIcon("ZP/001.PNG");
jl3.setIcon(spIcon);
login2.add(jl3);
jl3.setVisible(true);
jl3.setBounds(200, 120, 100, 100);
JLabel jlb1=new JLabel("<html>白羊座:女性:性格爽朗,不拘小節,極具領袖氣質,充滿自信而固執有旺盛的企圖心,喜歡接受挑戰,"
+ "男性:絕對的熱血男兒,有一點沖動和野心,不過有時候他們更加會誇誇其談,喜歡炫耀自己的同時更加容易陷入情網</html>");
login2.add(jlb1);
jlb1.setBounds(0,360, 690, 70);
}else if (b>=4.20&&b<=5.20) {
JLabel jl4JLabel=new JLabel();
jl4JLabel.setText("金牛座");
login2.add(jl4JLabel);
jl4JLabel.setBounds(300, 100, 100, 50);
JLabel jl4=new JLabel();
Icon spIcon=new ImageIcon("ZP/002.PNG");
jl4.setIcon(spIcon);
login2.add(jl4);
jl4.setVisible(true);
jl4.setBounds(300, 120, 100, 100);
JLabel jlb1=new JLabel("<html>金牛座:女性:追求腳踏實地的平實感,個性溫和,庄重正直,對音樂,舞蹈的節奏感有着與生俱來的天賦,"
+ "男性:沉默寡言,惜字如金。是最容易氣死人的一種。表面上都很斯文,踏實,給人務實的感覺.但是骨子里卻很風騷</html>");
login2.add(jlb1);
jlb1.setBounds(0,430, 690, 70);
}else if (b>=5.21&&b<=6.21) {
JLabel jl5JLabel=new JLabel();
jl5JLabel.setText("雙子座");
login2.add(jl5JLabel);
jl5JLabel.setBounds(400, 100, 100, 50);
JLabel jl5=new JLabel();
Icon spIcon=new ImageIcon("ZP/003.PNG");
jl5.setIcon(spIcon);
login2.add(jl5);
jl5.setVisible(true);
jl5.setBounds(400, 120, 100, 100);
JLabel jlb1=new JLabel("<html>雙子座:女性:兼具光明開朗的一面和陰霾低潮的一面,擁有敏捷的反應,學習能力強,顯得才華洋溢,但需要堅持到底,"
+ "男性:比較實際。喜歡將來可以幫助自己的女性。心氣比較高傲,雙子座的男人聰明而幽默</html>");
login2.add(jlb1);
jlb1.setBounds(0,500, 690, 70);
}else if (b>=6.22&&b<=7.22) {
JLabel jl6JLabel=new JLabel();
jl6JLabel.setText("巨蟹座");
login2.add(jl6JLabel);
jl6JLabel.setBounds(500, 100, 100, 50);
JLabel jl6=new JLabel();
Icon spIcon=new ImageIcon("ZP/004.PNG");
jl6.setIcon(spIcon);
login2.add(jl6);
jl6.setVisible(true);
jl6.setBounds(500, 120, 100, 100);
JLabel jlb1=new JLabel("<html>巨蟹座:女性:擁有愛家的母性本質,他們就像蟹一樣,有堅硬的外殼,卻有柔軟的內心,所以巨蟹座很懂得保護自己,"
+ "男性:因為很簡單,EQ發育比較遲緩,該風流不枉少年郎的時候,他們在打瞌睡,當人家改邪歸正了以后,他才如夢初醒。</html>");
login2.add(jlb1);
jlb1.setBounds(0,570, 690, 70);
}else if (b>=7.23&&b<=8.22) {
JLabel jl7JLabel=new JLabel();
jl7JLabel.setText("獅子座");
login2.add(jl7JLabel);
jl7JLabel.setBounds(600, 100, 100, 50);
JLabel jl7=new JLabel();
Icon spIcon=new ImageIcon("ZP/005.PNG");
jl7.setIcon(spIcon);
login2.add(jl7);
jl7.setVisible(true);
jl7.setBounds(600, 120, 100, 100);
JLabel jlb1=new JLabel("<html>獅子座:女性:熱情洋溢,本質上陽剛,卻也容易傲慢頑固。具領導能力與俠義風范,充滿活力和強烈的企圖心,卻不善於作深入的思考,"
+ "男性:坦誠,大方,愛恨分明,事業上容易成為霸主,群體里容易成為領袖.但是獅子座的男性在處理女性問題的時候,往往會優柔寡斷</html>");
login2.add(jlb1);
jlb1.setBounds(710,210, 690, 70);
}else if (b>=8.23&&b<=9.22) {
JLabel jl8JLabel=new JLabel();
jl8JLabel.setText("處女座");
login2.add(jl8JLabel);
jl8JLabel.setBounds(700, 100, 100, 50);
JLabel jl8=new JLabel();
Icon spIcon=new ImageIcon("ZP/006.PNG");
jl8.setIcon(spIcon);
login2.add(jl8);
jl8.setVisible(true);
jl8.setBounds(700, 120, 100, 100);
JLabel jlb1=new JLabel("<html>處女座:女性:完美主義者,感覺纖細敏銳,但同時也保有冷靜的頭腦,對事物能作出正確的判斷。因為自我要求甚高,很容易神經緊張,"
+ "男性:對感情比較內斂,不輕易的表露出來,這個大概和他們有一顆敏感而害羞的心有關。</html>");
login2.add(jlb1);
jlb1.setBounds(710,280, 690, 70);
}else if (b>=9.23&&b<=10.23) {
JLabel jl9JLabel=new JLabel();
jl9JLabel.setText("天秤座");
login2.add(jl9JLabel);
jl9JLabel.setBounds(800, 100, 100, 50);
JLabel jl9=new JLabel();
Icon spIcon=new ImageIcon("ZP/007.PNG");
jl9.setIcon(spIcon);
login2.add(jl9);
jl9.setVisible(true);
jl9.setBounds(800, 120, 100, 100);
JLabel jlb1=new JLabel("<html>天秤座:女性:寬容,講求和平,不喜爭斗,常常扮演和平使者的角色。你極具理性,很能明辯是非,有高明的社交能力和談話技巧,"
+ "男性:很和善,容易與他人交往。給人留下的印象一般都是高貴典雅。但在事業上一般缺乏競爭的野心,行為處事都很淡然</html>");
login2.add(jlb1);
jlb1.setBounds(710,350, 690, 70);
}else if (b>=10.24&&b<=11.22) {
JLabel jl10JLabel=new JLabel();
jl10JLabel.setText("天蠍座");
login2.add(jl10JLabel);
jl10JLabel.setBounds(900, 100, 100, 50);
JLabel jl10=new JLabel();
Icon spIcon=new ImageIcon("ZP/008.PNG");
jl10.setIcon(spIcon);
login2.add(jl10);
jl10.setVisible(true);
jl10.setBounds(900, 120, 100, 100);
JLabel jlb1=new JLabel("<html>天蠍座:女性:深沉內斂,沉默寡言,做事謹慎且深思熟慮,很能掌握事物本質,不善於表達感情,容易給人順從的錯覺,但內心是堅決而固執的。,"
+ "男性:報復心強是眾人皆知,但是他們還有一點也是很厲害的,就是力爭上游,絕不服輸的精神</html>");
login2.add(jlb1);
jlb1.setBounds(710,420, 690, 70);
}else if (b>=11.23&&b<=12.21) {
JLabel jl11JLabel=new JLabel();
jl11JLabel.setText("射手座");
login2.add(jl11JLabel);
jl11JLabel.setBounds(1000, 100, 100, 50);
JLabel jl11=new JLabel();
Icon spIcon=new ImageIcon("ZP/009.PNG");
jl11.setIcon(spIcon);
login2.add(jl11);
jl11.setVisible(true);
jl11.setBounds(1000, 120, 100, 100);
JLabel jlb1=new JLabel("<html>水瓶座:女性:熱情,熱愛生命的樂天主義者,你的率直,天真的性格使你廣受歡迎,崇尚自由,反應靈敏,行動敏捷 ,"
+ "男性:不太注重對方是否有出眾的容貌。他們愛上一個人有時候連自己都缺少一個理由,可能像某個人,觸動自己的心弦就會追求,他們很少默默暗戀別人,有話直說</html>");
login2.add(jlb1);
jlb1.setBounds(710,490, 690, 70);
}else if (b>=12.22&&b<=12.31||b>=1.1&&b<=1.19) {
JLabel jl12JLabel=new JLabel();
jl12JLabel.setText("摩羯座");
login2.add(jl12JLabel);
jl12JLabel.setBounds(1100, 100, 100, 50);
JLabel jl12=new JLabel();
Icon spIcon=new ImageIcon("ZP/010.PNG");
jl12.setIcon(spIcon);
login2.add(jl12);
jl12.setVisible(true);
jl12.setBounds(1100, 120, 100, 100);
JLabel jlb1=new JLabel("<html>摩羯座:女性:從表面上看,雙魚座的人內向而羞怯,然而內心常常是復雜而矛盾的,同時存在着善與惡,精神與物質等對立的爭扎,"
+ "男性:事業心很強。不甘落后別人,力爭第一。他們都很珍惜自己的另一半,他們自我給與的壓力都很大,凡事都要力求完美</html>");
login2.add(jlb1);
jlb1.setBounds(710,560, 690, 70);
}
}
});
login2.setVisible(true);
//通過獲取登錄界面對象,用dispose方法關閉它
login.dispose();
}
else {
JFrame jf1=new JFrame();
//錯誤界面中使用邊界布局,
JLabel jl1 = new JLabel(" 賬號或密碼錯誤,請重新輸入!");
jf1.setSize(500, 200);
//宋體,14號字體
jl1.setFont(new Font("宋體",Font.PLAIN,14));
jl1.setPreferredSize(dim3);
//將textName標簽添加到窗體上
jp1.add(jl1);
jf1.add(jp1,BorderLayout.NORTH);//布局
JButton close = new JButton("確定");//確定按鈕相關定義
close.setFont(new Font("宋體",Font.PLAIN,14));//按鈕文字字體設置
//設置按鍵大小
close.setSize(dim3);
jp2.add(close);
jf1.add(jp2,BorderLayout.SOUTH);
close.addActionListener(new ActionListener()//對判斷按鈕進行監聽
{
public void actionPerformed(ActionEvent e)
{
jf1.dispose();//關閉窗口
}
});
jf1.setResizable(false);
jf1.setVisible(true);//顯示方式
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
login2.setResizable(false);
login2.setVisible(true);//顯示方式
}
}
}
dabianDemo類:
public class dabianDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
dabianDemo login = new dabianDemo();//實例化Login類的對象,
login.initUI();//調用初始化界面的方法
}
public void initUI() {
JFrame jf1 = new JFrame();//實例化JFrame類的對象
jf1.setTitle("登錄");//設置窗體標題
jf1.setSize(400, 250);//設置窗體大小,只對頂層容器生效
jf1.setDefaultCloseOperation(3);//設置窗體關閉操作,3表示關閉窗體退出程序
jf1.setLocationRelativeTo(null);//設置窗體相對於另一組間的居中位置,參數null表示窗體相對於屏幕的中央位置
jf1.setFont(new Font("宋體",Font.PLAIN,14));//設置字體,顯示格式正常,大小
FlowLayout fl = new FlowLayout(FlowLayout.CENTER,10,10);//實例化流式布局類的對象,指定對齊方式為居中對齊組件之間的間隔為10個像素
jf1.setLayout(fl);//實例化流式布局類的對象
JLabel jl1 = new JLabel("賬號:");//實例化JLabel標簽對象,該對象顯示“賬號”
jl1.setFont(new Font("宋體",Font.PLAIN,14));//宋體,14號
jf1.add(jl1);//將jl1標簽添加到窗體上
JTextField jtf1 = new JTextField();//實例化JTextField標簽
Dimension dim1 = new Dimension(300,30); //封裝了一個文本框的高度和寬度
jtf1.setPreferredSize(dim1);//設置除頂級容器組件以外其他組件的大小
jf1.add(jtf1);//將jtf1標簽添加到窗體上
JLabel jl2 = new JLabel("密碼:");//實例化JLabel標簽對象,該對象顯示“密碼”
jl2.setFont(new Font("宋體",Font.PLAIN,14));
jf1.add(jl2);//將jl2添加到窗體上
JPasswordField jp1 = new JPasswordField();//實例化JPasswordField密碼框
jp1.setPreferredSize(dim1);//使用封裝設置大小
jf1.add(jp1);//添加到窗體
JButton button1 = new JButton();//實例化JButton組件
Dimension dim2 = new Dimension(100,30);//封裝了按鈕控件的高度和寬度
button1.setText("登錄");//設置按鍵的顯示內容
button1.setFont(new Font("宋體",Font.PLAIN,14));//設置字體
button1.setSize(dim2);//使用封裝設置按鍵大小
jf1.add(button1);
jf1.setVisible(true);//窗體可見,一定要放在所有組件加入窗體后
LoginListener ll = new LoginListener(jf1,jtf1,jp1);//對登錄按鈕設置監聽
button1.addActionListener(ll);
}
}
mysql類:
public class mysql {
Connection con;
public mysql(){
try{
Class.forName("com.mysql.jdbc.Driver"); // 加載驅動
String url = "jdbc:mysql://localhost:3306/mysql?useSSL=false"; // 定義數據庫連接URL
con = DriverManager.getConnection(url, "root", ""); // 建立連接
}
catch(Exception e){
System.out.println("數據庫連接失敗");
}
}
}