大作業—JAVAGUI實現數據庫管理系統(3)

這次寫的註冊頁面並把以前的代碼改了改
以前的更改後:

package homework;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class 界面 extends JFrame{	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public 界面() 
	{ 
	setTitle("登錄");
	setBak(); //調用背景方法 
	JPanel jp = new JPanel(); //創建個JPanel 
	jp.setOpaque(false); //把JPanel設置爲透明 這樣就不會遮住後面的背景 這樣你就能在JPanel隨意加組件了 
	this.add(jp);
	
	Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();  
	int x = (int)screensize.getWidth();
	int y = (int)screensize.getHeight(); 
	//獲取屏幕的長寬並將界面設置成該大小
	this.setSize(x,y);	
	
	
	jp.setLayout(new BorderLayout());
	JLabel jj=new JLabel("歡迎進入用戶管理系統!");
	jj.setFont(new Font("宋體",Font.PLAIN,45));//設置字體的字體,樣子,大小			
	jp.add(jj,BorderLayout.NORTH); //在整體佈局的上方
	jj.setHorizontalAlignment(SwingConstants.CENTER);//居中
	jj.setPreferredSize(new Dimension(0,500));  //寬度300
	
	
	JLabel j1_useranme=new JLabel("請輸入用戶名");
	j1_useranme.setFont(new Font("宋體",Font.PLAIN,20));
	JTextField ja_username=new JTextField(20);
	JLabel j2_useranme=new JLabel("請輸入密碼  ");
	j2_useranme.setFont(new Font("宋體",Font.PLAIN,20));
	JPasswordField jb_password=new JPasswordField(20);//密碼採用密碼輸入:即輸入後顯示**
	
	JPanel p=new JPanel();
	jp.add(p,BorderLayout.CENTER);	
	p.setLayout(new BorderLayout());//在邊框佈局中的center部分嵌入邊框佈局	
	JPanel p1=new JPanel();
	JPanel p3=new JPanel();
	JLabel b=new JLabel(" ");
	p1.add(j1_useranme);
	p1.add(ja_username);
	p3.add(j2_useranme);
	p3.add(jb_password);
	p.add(b,BorderLayout.NORTH);
	p.add(p1,BorderLayout.CENTER);
	p.add(p3,BorderLayout.SOUTH);
	b.setPreferredSize(new Dimension(0,40));
	
	JButton j3_ok=new JButton("登錄");
	j3_ok.addActionListener(new ActionListener()    //監聽登錄按鈕
			{

		public void actionPerformed(ActionEvent e)
		{
			String jusername=ja_username.getText();
			char s[]=jb_password.getPassword();
			String jpassword=new String(s);			
			
			try {
				Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
				//加載對應的jdbc驅動
				String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SCHOOL";
				//配置連接字符串
				String user="sa";//sa超級管理員
				String password="手動打碼";//密碼
				Connection conn=DriverManager.getConnection(url,user,password);
				//創建數據庫連接對象
				Statement st=conn.createStatement();
				//創建SQL語句執行對象

			   String  strSQL="(Select * from  dbo.PY where ID='"+jusername+"' )";
				ResultSet rs=st.executeQuery(strSQL);

				if(rs.next())
				{					 
					if(rs.getString("PAWD")==jpassword)//如果密碼正確,進入下一個界面
	    			  {
	    				  new PY();	
	    				  closeThis();
	    			  }
					else
					{
						JOptionPane.showMessageDialog(null,"對不起,輸入密碼錯誤.","錯誤!",JOptionPane.ERROR_MESSAGE);
					}
				}
				else
				{ 
					JOptionPane.showMessageDialog(null,"用戶名不存在","錯誤!",JOptionPane.ERROR_MESSAGE);
				}
			    conn.close();
			   
				//關閉數據庫連接	
			} 
			catch (ClassNotFoundException ex) {
				System.out.println("沒有找到對應的數據庫驅動類");
			}
			catch (SQLException ex) {
				System.out.println("數據庫連接或者是數據庫操作失敗");
			}
		}
		}
			);
						
	
	JButton j4_register=new JButton("註冊");
	j4_register.addActionListener(new ActionListener()
			{
	public void actionPerformed(ActionEvent e)
	{
		closeThis();
		new ZC();
	}
			});
	
	JPanel p2=new JPanel();	
	p2.add(j3_ok);
	p2.add(j4_register);
	p2.setPreferredSize(new Dimension(0,100));
	jp.add(p2,BorderLayout.SOUTH);//在整體的下方,兩個按鈕並排
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	} 
	
	public void setBak()//背景方法
	{ 
		((JPanel)this.getContentPane()).setOpaque(false); 
		ImageIcon img = new ImageIcon("C:\\\\Users\\\\小甘同學\\\\Pictures\\\\2.jpg"); //添加圖片的位置
		JLabel background = new JLabel(img);
		this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
		background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight()); 
		} 

	
	public  void closeThis()//關閉當前界面
	{
		this.dispose();
	}

	
	public static void main(String[] args)
	{		
		new 界面().setVisible(true);
	}


}

註冊界面:

package homework;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

	public class ZC extends JFrame{
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;

		public ZC()
		{
			super("註冊");			
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			this.setSize(500,500);	
			this.setLocation(400,150);
			setVisible(true);
			
			JLabel jj=new JLabel("樸實無華的註冊界面");
			jj.setFont(new Font("宋體",Font.PLAIN,35));//設置字體的字體,樣子,大小			
			this.add(jj,BorderLayout.NORTH); //在整體佈局的上方
			jj.setHorizontalAlignment(SwingConstants.CENTER);//居中
			//jj.setPreferredSize(new Dimension(0,500));  //寬度300
			
			JLabel j1_useranme=new JLabel("用戶名:");
			j1_useranme.setFont(new Font("宋體",Font.PLAIN,20));
			JTextField ja_username=new JTextField(20);
			JLabel j2_useranme=new JLabel("密碼:  ");
			j2_useranme.setFont(new Font("宋體",Font.PLAIN,20));
			JTextField jb_username=new JTextField(20);
			
			JPanel p=new JPanel();
			this.add(p,BorderLayout.CENTER);	
			p.setLayout(new BorderLayout());//在邊框佈局中的center部分嵌入邊框佈局	
			JPanel p1=new JPanel();
			JPanel p3=new JPanel();
			JLabel b=new JLabel(" ");
			p1.add(j1_useranme);
			p1.add(ja_username);
			p3.add(j2_useranme);
			p3.add(jb_username);
			p.add(b,BorderLayout.NORTH);
			p.add(p1,BorderLayout.CENTER);
			p.add(p3,BorderLayout.SOUTH);
			p3.setPreferredSize(new Dimension(0,200));
			b.setPreferredSize(new Dimension(0,90));
			
			JPanel p2=new JPanel();	
			JButton register=new JButton("註冊");
			p2.add(register);
			this.add(p2,BorderLayout.SOUTH);//在整體的下方
			p2.setPreferredSize(new Dimension(0,70));
			register.addActionListener(new ActionListener()
					{
			public void actionPerformed(ActionEvent e)
			{
				String jusername=ja_username.getText();
				String jusername1=jb_username.getText();
								
				
				try {
					Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
					//加載對應的jdbc驅動
					String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SCHOOL";
					//配置連接字符串
					String user="sa";//sa超級管理員
					String password="打碼";//密碼
					Connection conn=DriverManager.getConnection(url,user,password);
					//創建數據庫連接對象
					Statement st=conn.createStatement();
					//創建SQL語句執行對象

				    String  strSQL="(Select * from  dbo.PY where ID='"+jusername+"' )";
					ResultSet rs=st.executeQuery(strSQL);

					if(rs.next())
					{					 
						JOptionPane.showMessageDialog(null,"用戶名已存在","錯誤!", JOptionPane.ERROR_MESSAGE);						
					}
					else
					{ 
						String sql = "insert into dbo.PY(ID,PAWD) values(' "+jusername+"',' "+jusername1+"') "; 
						PreparedStatement pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);  
						pst.executeUpdate();
						pst.close();  
						JOptionPane.showMessageDialog(null,"註冊成功");
					}
				    conn.close();
				   
					//關閉數據庫連接	
				} 
				catch (ClassNotFoundException ex) {
					System.out.println("沒有找到對應的數據庫驅動類");
				}
				catch (SQLException ex) {
					System.out.println("數據庫連接或者是數據庫操作失敗");
				}
			}
						
					});
			
		}
		
	}

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章