啊啊啊我好菜啊 一点点来叭
先设计登陆界面:包含用户名、密码等组件(先简单实现一下功能,等后期在优化界面比如验证码的添加什么的)
然后连接数据库 在数据库先建第一张表然后添加一些数据(随便填了一些)
普通用户登录输入用户名和密码,数据库里有并且对应上则登陆成功进入普通用户的操作界面(功能什么的下次再写),不存在的登陆失败,可以注册。(下一次写注册的界面和功能的实现)
管理员我寻思是输入特定的用户名和密码才可以登陆成功,但是功能界面什么的意思差不多最后再写这个。
先写这些吧!
sql server用户表的建立:
CREATE TABLE PY
(ID CHAR(10), //用户名
PAWD CHAR(20) //密码
);
登录界面:
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 javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
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)
{
Jdbcs d = new Jdbcs();
String jusername=ja_username.getText();//获取账号
char[] s=jb_password.getPassword();
String jpassword=new String(s); //获取密码
d.compare(jusername, jpassword);
}
}
);
JButton j4_register=new JButton("注册");
j4_register.addActionListener(new ActionListener()//同理,先写一样的后期再改
{
public void actionPerformed(ActionEvent e)
{
closeThis();
new PY();
}
});
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);
}
}
界面是这样的:(当然密码的输入显示是****)
连接数据库:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class Jdbcs {
Connection con = null;
Statement statement = null;
ResultSet res = null;
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//加载jbdc驱动
String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SCHOOL";
String userName="sa";
String userPwd="俺的密码(手动打码)";
public Jdbcs()
{
try
{
Class.forName(driverName);
System.out.println("加载驱动成功!");
}catch(Exception e){
e.printStackTrace();
System.out.println("加载驱动失败!");
}
try{
con=DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("连接数据库成功!");
}catch(Exception e)
{
e.printStackTrace();
System.out.print("SQL Server连接失败!");
}
}
public void compare(String username, String password) {
if(username.equals("")||password.equals(""))
{
JOptionPane.showMessageDialog(null,"对不起,请输入用户名或密码.","错误!",JOptionPane.ERROR_MESSAGE);
}
else
{
String sql="select * from PY where ID='"+ username +"'";
try {
res = statement.executeQuery(sql);
if(res.next())//如果存在,就验证密码
{
if(res.getString("PAWD").equals(password))//如果密码正确,进入下一个界面
{
new PY();
}
else//错误则提示
{
JOptionPane.showMessageDialog(null,"对不起,输入密码错误.","错误!",JOptionPane.ERROR_MESSAGE);
}
}
else//如果用户名不存在
{
JOptionPane.showMessageDialog(null,"用户名不存在","错误!",JOptionPane.ERROR_MESSAGE);
}
res.close();
con.close();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}