Java--登陆注册系统(模仿qq登陆界面)
Java--登陆注册系统(数据库)import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DengLu extends JFrame implements ActionListener,KeyListener,ItemListener,FocusListener{JLabel top,bott;JComboBox combobox;JPasswordField password;JButton b_login,b_regedit;JPanel panelMain,panel_center;public DengLu (){super("登陆系统");panelMain = new JPanel(new BorderLayout(10, 10)){public void paintComponent(Graphics g) {Graphics2D g2 = (Graphics2D)g;super.paintComponent(g);Image img = Toolkit.getDefaultToolkit().getImage("G:\\image\\Denglubg.jpg");g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);}};top = new JLabel ();top.setPreferredSize(new Dimension(this.getWidth(),30));bott = new JLabel ();bott.setForeground(Color.white);bott.setPreferredSize(new Dimension(this.getWidth(),25));centerBuild();additem();panelMain.add(top,BorderLayout.NORTH);panelMain.add(bott,BorderLayout.SOUTH);panelMain.add(panel_center,BorderLayout.CENTER);combobox.addItemListener(this);password.addActionListener(this);b_login.addActionListener(this);b_regedit.addActionListener(this);combobox.addFocusListener(this);password.addFocusListener(this);b_login.addFocusListener(this);b_regedit.addFocusListener(this);combobox.addKeyListener(this);password.addKeyListener(this);this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent we) {quit();}});this.setContentPane(panelMain); //设置窗口面板this.setSize(350, 235);Dimension frm=this.getSize();Dimension scr=Toolkit.getDefaultToolkit().getScreenSize();this.setLocation((scr.width-frm.width)/2,(scr.height-frm.height)/2);this.setResizable (false); //设置窗口不可放大缩小this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//sunswing.setWindowCenter(this);this.setVisible(true);//password.requestFocus(true); //设置焦点给密码框}private void centerBuild(){JLabel L1,L2;panel_center=new JPanel(null);panel_center.setOpaque(false);L1=new JLabel("用户名:");L1.setForeground(Color.white);L2=new JLabel("登录密码:");L2.setForeground(Color.white);b_login=new JButton("登陆");b_regedit=new JButton("注册");combobox=new JComboBox();combobox.addItem("");password=new JPasswordField();L1.setBounds(50,14,60,20);L2.setBounds(50,48,60,20);b_login.setBounds(68,87,86,28);b_regedit.setBounds(186,87,86,28);combobox.setBounds (115,12,171,23);password.setBounds (115,46,170,23);combobox.setEditable(true);panel_center.add(L1);panel_center.add(L2);panel_center.add(b_login);panel_center.add(b_regedit);panel_center.add(combobox);panel_center.add(password);}private void quit(){int flag = 0;String msg = "您现在要关闭系统吗?";flag = JOptionPane.showConfirmDialog(null, msg, "提示", JOptionPane.YES_NO_OPTION);if(flag == JOptionPane.YES_OPTION) {this.setVisible(false);System.exit(0);}}/**=======================================================================* ** 【## private void zhuce】注册用户界面* 参数:无* 返回值:无* 权限:private* 功能:通过“用户名,登陆密码”进行用户注册**=======================================================================** */private void zhuce(){String utext=String.valueOf(combobox.getSelectedItem());String ptext=password.getText();if(utext.trim().equals("")||ptext.equals("")){JOptionPane.showMessageDialog(null,"用户名、登陆密码不能为空!","警告",RMATION_MESSAGE);}else{Connection conn = null;PreparedStatement ps=null;ResultSet rs=null;try{conn=Utils.getConnection();String sql="select users from login.dlu where users=?";ps=conn.prepareStatement(sql);ps.setString(1, utext);rs=ps.executeQuery();if(rs.next()){ //用户存在JOptionPane.showMessageDialog(null,"该用户已注册,请重新输入用户名注册,\n或者直接登录!","提醒",RMATION_MESSAGE);}else{if(ptext.length()>=6){sql="insert into login.dlu (users,passwords)values(?,?)";ps=conn.prepareStatement(sql);ps.setString(1, utext);ps.setString(2, ptext);int up=ps.executeUpdate();if(up==1){JOptionPane.showMessageDialog(null,"注册成功,\n可以直接登录!","提醒",RMATION_MESSAGE);bott.setText("已注册成功!请登录!");combobox.removeAllItems();additem();}}else{bott.setText("提示:密码不能小于六位数!");}}}catch(Exception e){throw new RunException(e.getMessage(),e);}finally{Utils.free(rs, ps, conn);}}}/**=======================================================================* ** 【## private void additem()】增加最后登录用户的7名* 参数:无* 返回值:无* 权限:private* 功能:模仿qq的登录记录功能**=======================================================================** */private void additem(){Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=Utils.getConnection();String sql="select users from login.dlu";ps=conn.prepareStatement(sql);rs=ps.executeQuery();rs.afterLast();int i=0;String s=null;while(rs.previous()&& i<8){i++;s=rs.getString("users");combobox.addItem(s);}} catch (SQLException e) {throw new RunException(e.getMessage(),e);}finally{Utils.free(rs, ps, conn);}}private void getPassword(){Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;String ut=String.valueOf(combobox.getSelectedItem());try {conn=Utils.getConnection();String sql="select users,passwords from login.dlu where users=?";ps=conn.prepareStatement(sql);ps.setString(1, ut);rs=ps.executeQuery();String s1=null;while(rs.next()){s1=rs.getString("passwords");}password.setText(s1);} catch (SQLException e) {throw new RunException(e.getMessage(),e);}finally{Utils.free(rs, ps, conn);}}/**=======================================================================* ** 【## private void denglu】登陆界面* 参数:无* 返回值:无* 权限:private* 功能:密码验证通过,进入主操作界面,仅类内使用**=======================================================================** */private void denglu(){String utext=String.valueOf(combobox.getSelectedItem());String ptext=password.getText();Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=Utils.getConnection();String sql="select users,passwords from login.dlu where users=?";ps=conn.prepareStatement(sql);ps.setString(1, utext);rs=ps.executeQuery();if(rs.next()){if(ptext.equals(rs.getString(2))){this.setVisible(false);new MainProgram();System.exit(1);}else{JOptionPane.showMessageDialog(null,"您输入的用户和密码不正确,\n请重新输入","错误", JOptionPane.ERROR_MESSAGE);}}else{JOptionPane.showMessageDialog(null,"您输入的用户不存在,请重新输入,\n或者先注册","错误", RMATION_MESSAGE);}} catch(Exception e){throw new RunException(e.getMessage(),e);}finally{Utils.free(rs, ps, conn);}}/**=======================================================================* ** ActionListener 监听**=======================================================================** */public void actionPerformed(ActionEvent en){if(en.getSource()==b_regedit){zhuce();}else if(en.getSource()==b_login){denglu();}}/**=======================================================================* ** ItemListener 监听**=======================================================================** */public void itemStateChanged(ItemEvent es){getPassword();password.requestFocus(true);}/**=======================================================================* ** FocusListener 监听**=======================================================================** */public void focusGained(FocusEvent fe){if(fe.getSource()==combobox){bott.setText("提示:请输入用户名!");}else if(fe.getSource()==password){bott.setText("提示:请输入密码!密码必须大于六位数");}else if(fe.getSource()==b_login){bott.setText("提示:登录系统!");}else if(fe.getSource()==b_regedit){bott.setText("提示:注册账号");}}public void focusLost(FocusEvent esd){}/**=======================================================================* ** KeyListener 监听**=======================================================================** */public void keyPressed(KeyEvent ke){if(ke.getKeyChar()==KeyEvent.VK_ENTER){if(ke.getSource()==combobox){password.requestFocus(true);}if(password.getPassword().length>0){denglu();}}else if(ke.getKeyChar() == KeyEvent.VK_ESCAPE) { //按ESC键退出系统quit();}}public void keyReleased(KeyEvent kr){}public void keyTyped(KeyEvent kt){}/**=======================================================================* ** 主函数main 接入口**=======================================================================** */public static void main(String args[]){new DengLu();}}class RunException extends RuntimeException {public RunException() {// TODO Auto-generated constructor stub}public RunException(String message) {super(message);// TODO Auto-generated constructor stub}public RunException(Throwable cause) {super(cause);// TODO Auto-generated constructor stub}public RunException(String message, Throwable cause) {super(message, cause);// TODO Auto-generated constructor stub}}class Utils {private static String url="jdbc:mysql://localhost:3306/login";private static String user="root";private static String password="136597";private Utils(){}static{try {Class.forName("com.mysql.jdbc.Driver");} catch (Exception e) {throw new RunException(e.getMessage(),e);}}static Connection getConnection(){try {return DriverManager.getConnection(url,user,password);} catch (SQLException e) {throw new RunException(e.getMessage(),e);}}public static void free(ResultSet rs,PreparedStatement ps,Connection conn){ try{if(ps!=null){ps.close();}}catch(Exception e){e.printStackTrace();}。
qq登录界面设计java程序
zhanghao.setFont(new Font("宋体",Font.PLAIN,13));
this.add(zhanghao);*/
// zhanghaowb = new JLabel(new ImageIcon("2.png"));
zidongdenglu = new JCheckBox("自动登录");
zidongdenglu.setBounds(200, 190, 100, 30);
this.add(zidongdenglu);
jizhumima = new JCheckBox("记住密码");
jizhumima.setBounds(100, 190, 100, 30);
} catch (InstantiationException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
QQLogin w = new QQLogin();
w.setVisible(true);
}
});*/
new QQLogin();
}
public void mouseClicked(MouseEvent e) {
// TODO 自动生成方法存根
Java实现QQ登陆
Java实现QQ登陆图②:图③:好了,效果就是这样了,虽然实现了基本功能,但是还是不完美,比如说好友面板不能随着窗口改变大小而改变,不过应该已经可以解决了,只是还没实践,下面就发上源代码:一共有三个类:MemberModel.java //显示类QQ似好友标签信息的模板类;TestPane.java //添加多个模板的容器类;TestFrame.java //窗体类;核心部分是前面两个类,注意,第二个类的布局方式不能为空,否则不能是容器显示滚动条,这是实现这个面板功能的一个难题,因为我不怎么会使用其他的布局方式,就只经常用空布局,经过这次才知道,光用空布局是不行的,空布局的应用受到了太多的限制。
在TestPane.java中添加好友信息的方式应该是代码添加黑名单信息的方式,可在其他类中调用方法,传递参数(数组)过来,然后对信息模板进行初始化,还有面板上的信息模板从程序刚开始运行就生成了,只是设置了不可见,后点击相关分类标签后的可视与不可视是同理的,也就是说你有多少个好友就一直会有多少个JLabel存在你的面板上,只是你可能看不见他们,我感觉自己的实现方式不是很好。
还有在我所用的这种布局方式中,显示Label的宽度是一定的,我不知道怎么设置他的宽度和高度,所以通过在Label上添加了一个白色图标(185 X 60)来使Label变宽,然后再添加模板JPanel,如果网友们还有好的解决方法,希望不吝赐教。
下面是源码:MemberModel.java 的源代:package coolbaby6;import javax.swing.ImageIcon;import javax.swing.JPanel;import javax.swing.JButton;import java.awt.Color;import java.awt.Rectangle;import javax.swing.JLabel;import java.awt.Dimension;import java.awt.Font;public class MemberModel{private static final long serialVersionUID = 1L;public JButton jButton = null;//显示好友头像;public JPanel jPanel = new JPanel();//模板容器;private JLabel lb_nickName = null;//显示昵称;private int pic;private String nickname = null;private JLabel lb_mood = null;//显示心情;public MemberModel(int pic, String nickname, int len) {super();this.pic = pic;//头像编(有多种方法可以实现,这种最简单)this.nickname = nickname;//昵称;initialize();}private void initialize() {lb_mood = new JLabel();lb_mood.setBounds(new Rectangle(51, 30, 131, 20));lb_mood.setFont(new Font("Dialog", Font.PLAIN, 12));lb_mood.setText("世界上最遥远的距离不是生与死,而是我站在你面前你却不知道我爱你!");lb_mood.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseEntered(java.awt.event.MouseEvent e) {exchangeEnter();lb_mood.setToolTipText(lb_mood.getText());}public void mouseExited(java.awt.event.MouseEvent e) {exchangeExited();}});lb_nickName = new JLabel();lb_nickName.setBounds(new Rectangle(52, 10, 80, 20));lb_nickName.setFont(new Font("Dialog", Font.BOLD, 14));lb_nickName.setText(nickname);jPanel.setSize(new Dimension(185, 60));jPanel.setLayout(null);jPanel.add(getJButton(), null);jPanel.add(lb_nickName, null);jPanel.add(lb_mood, null);jPanel.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseExited(java.awt.event.MouseEvent e) {exchangeExited();//鼠标移出模板区,改变背景颜色;}public void mouseEntered(java.awt.event.MouseEvent e) {exchangeEnter();//鼠标移进模板区,改变背景颜色;}});}private void exchangeEnter() {jPanel.setBackground(new Color(192,224,248));}private void exchangeExited() {jPanel.setBackground(null);}private JButton getJButton() {if (jButton == null) {jButton = new JButton();jButton.setBounds(new Rectangle(8, 10, 40, 40));jButton.setBackground(new Color(236, 255, 236));jButton.setIcon(new ImageIcon("head/"+pic + ".jpg"));jButton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(java.awt.event.MouseEvent e) {exchangeExited();//鼠标移出模板区,改变背景颜色;}public void mouseEntered(java.awt.event.MouseEvent e) {exchangeEnter();//鼠标移进模板区,改变背景颜色;}});}return jButton;}}TestPane.java 的源代码:package coolbaby6;import javax.swing.BorderFactory;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.BoxLayout;import javax.swing.ImageIcon;public class TestPane extends JPanel {private static final long serialVersionUID = 1L;private JLabel jLabel = null;private JLabel jLabel1 = null;private JLabel jLabel11 = null;private JLabel jLabel12 = null;private int clickF=0;private int clickB=0;public TestPane() {super();initialize();}private void initialize() {jLabel12 = new JLabel();jLabel12.setIcon(new ImageIcon("img/bg.jpg"));jLabel12.add(new MemberModel(3,"CoolBabY3",200).jPanel);jLabel12.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); jLabel11 = new JLabel();jLabel11.setIcon(new ImageIcon("img/bg.jpg"));jLabel11.add(new MemberModel(2,"CoolBabY2",200).jPanel);jLabel11.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); jLabel1 = new JLabel();jLabel1.setIcon(new ImageIcon("img/bg.jpg"));jLabel1.add(new MemberModel(1,"CoolBabY1",200).jPanel);jLabel1.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); jLabel = new JLabel();jLabel.setText("我的好友");jLabel.setIcon(new ImageIcon("img/ico.jpg"));jLabel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); jLabel.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) {clickF+=1;if(clickF%2==1){jLabel1.setVisible(false);jLabel11.setVisible(false);jLabel12.setVisible(false);jLabel.setIcon(new ImageIcon("img/ico2.jpg"));update();}else{jLabel1.setVisible(true);jLabel11.setVisible(true);jLabel12.setVisible(true);jLabel.setIcon(new ImageIcon("img/ico.jpg"));update();}}});this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));this.setSize(200, 408);this.setLocation(20, 5);this.add(jLabel, null);this.add(jLabel1, null);this.add(jLabel11, null);this.add(jLabel12, null);addJLabel();}private void update(){//更新UI界面;this.updateUI();}private void clickBlack2(JLabel []jb){//点击标签,将后面的标签全部设为不可视; for(int i=1;i<jb.length;i++){try{jb[i].setVisible(false);}catch(Exception e){e.printStackTrace();}}update();}private void clickBlack(JLabel []jb){//点击标签,将后面的标签全部设为可视;for(int i=1;i<jb.length;i++){try{jb[i].setVisible(true);}catch(Exception e){e.printStackTrace();}}update();}private void addJLabel(){//添加黑名单的内容;final JLabel []jb=new JLabel[7];jb[0] = new JLabel();jb[0].setText("黑名单");jb[0].setIcon(new ImageIcon("img/ico2.jpg"));jb[0].setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));jb[0].addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent e) {clickB+=1;if(clickB%2==1){clickBlack(jb);jb[0].setIcon(new ImageIcon("img/ico.jpg"));}else{clickBlack2(jb);jb[0].setIcon(new ImageIcon("img/ico2.jpg"));}}});this.add(jb[0],null);for(int i=1;i<jb.length;i++){jb[i]=new JLabel();jb[i].setIcon(new ImageIcon("img/bg.jpg"));jb[i].setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));jb[i].add(new MemberModel((i+3),"CoolBabY"+(i+3),200).jPanel);jb[i].setVisible(false);this.add(jb[i],null);}}TestFrame.java 的源代码:package coolbaby6;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.ScrollPaneConstants;import javax.swing.SwingUtilities;public class TestFrame {private JFrame jFrame = null;private JPanel jContentPane = null;private JScrollPane scrollPane=null;public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {TestFrame application = new TestFrame();application.getJFrame().setVisible(true);}});}private JFrame getJFrame() {if (jFrame == null) {jFrame = new JFrame();jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setSize(230, 700);jFrame.setTitle("模拟实现QQ面板功能");jFrame.setContentPane(getJContentPane());}return jFrame;}private JScrollPane getScrollPane(){//给添加好友的容器JPanel添加滚动条;if(scrollPane==null){scrollPane=new JScrollPane(new TestPane());scrollPane.setBounds(20,5, 190, 600);scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLL BAR_NEVER );//不显示水平滚动条;return scrollPane;}private JPanel getJContentPane() {//实例化底层的容器JPanel;if (jContentPane == null) {jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(getScrollPane());}return jContentPane;}}能成功编译成功我的源代码的方略:①、建一个项目,按我的类名建3个类,将源代码拷贝进去;②、在项目根目录下建一个名为img的文件夹,将要用到的图片放进去。
java实现简单QQ登录界面
java实现简单QQ登录界⾯本⽂实例为⼤家分享了java实现简单QQ登录界⾯的具体代码,供⼤家参考,具体内容如下java在图形界⾯,不是太强项,但不是不可以做,它的开源是very nice!实现代码如下(想实现完美的界⾯,可能要更多coding的⽀持):package com.ts.x.swing;import java.awt.Color;import java.awt.Container;import java.awt.Cursor;import java.awt.Font;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JRootPane;import javax.swing.JTextField;public class QQ extends JFrame{private static final long serialVersionUID = -6788045638380819221L;//⽤户名private JTextField ulName;//密码private JPasswordField ulPasswd;//⼩容器private JLabel j1;private JLabel j2;private JLabel j3;private JLabel j4;//⼩按钮private JButton b1;private JButton b2;private JButton b3;//复选框private JCheckBox c1;private JCheckBox c2;//列表框private JComboBox<String> cb1;/*** 初始化QQ登录页⾯* */public QQ(){//设置登录窗⼝标题this.setTitle("QQ登录");//去掉窗⼝的装饰(边框)// this.setUndecorated(true);//采⽤指定的窗⼝装饰风格this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);//窗体组件初始化init();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置布局为绝对定位this.setLayout(null);this.setBounds(0, 0, 355, 265);//设置窗体的图标Image img0 = new ImageIcon("D:/logo.png").getImage();this.setIconImage(img0);//窗体⼤⼩不能改变this.setResizable(false);//居中显⽰this.setLocationRelativeTo(null);//窗体显⽰this.setVisible(true);}/*** 窗体组件初始化* */public void init(){//创建⼀个容器,其中的图⽚⼤⼩和setBounds第三、四个参数要基本⼀致(需要⾃⼰计算裁剪) Container container = this.getContentPane();j1 = new JLabel();//设置背景⾊Image img1 = new ImageIcon("D:/bgimg.png").getImage();j1.setIcon(new ImageIcon(img1));j1.setBounds(0, 0, 355, 265);//qq头像设定j2 = new JLabel();Image img2 = new ImageIcon("D:/hdimg.png").getImage();j2.setIcon(new ImageIcon(img2));j2.setBounds(40, 95, 50, 53);//⽤户名输⼊框ulName = new JTextField();ulName.setBounds(100, 100, 150, 20);//注册账号j3 = new JLabel("注册账号");j3.setBounds(260, 100, 70, 20);//密码输⼊框ulPasswd = new JPasswordField();ulPasswd.setBounds(100, 130, 150, 20);//找回密码j4= new JLabel("找回密码");j4.setBounds(260, 130, 70, 20);//记住密码c1 = new JCheckBox("记住密码");c1.setBounds(105, 155, 80, 15);//⾃动登陆c2 = new JCheckBox("⾃动登陆");c2.setBounds(185, 155, 80, 15);//⽤户登陆状态选择cb1 = new JComboBox<String>();cb1.addItem("在线");cb1.addItem("隐⾝");cb1.addItem("离开");cb1.setBounds(40, 150, 55, 20);//登陆按钮b1 = new JButton("登录");//设置字体和颜⾊和⼿形指针b1.setFont(new Font("宋体", Font.PLAIN, 12));b1.setForeground(Color.RED);b1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));b1.setBounds(280, 200, 65, 20);//给按钮添加b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String cmd = e.getActionCommand();if("登录".equals(cmd)){String username = ulName.getText();String userpassword = ulPasswd.getText();if(username.equals("tskk") && userpassword.equals("123456")){JOptionPane.showConfirmDialog(null, "登录成功");}else{JOptionPane.showConfirmDialog(null, "登录失败");}}}});//多账号b2 = new JButton("多账号");b2.setBounds(5, 200, 75, 20);//设置b3 = new JButton("设置");b3.setBounds(100, 200, 65, 20);//所有组件⽤容器装载j1.add(j2);j1.add(j3);j1.add(j4);j1.add(c1);j1.add(c2);j1.add(cb1);j1.add(b1);j1.add(b2);j1.add(b3);container.add(j1);container.add(ulName);container.add(ulPasswd);}public static void main(String[] args) {new QQ();}}运⾏结果界⾯为:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Java模拟用户登陆的简单案例
模拟用户登录【案例介绍】1.任务描述在使用一些APP时,通常都需要填写用户名和密码。
用户名和密码输入都正确才会登录成功,否则会提示用户名或密码错误。
本例要求编写一个程序,模拟用户登录。
程序要求如下:(1)用户名和密码正确,提示登录成功。
(2)用户名或密码不正确,提示“用户名或密码错误”。
(3)总共有3次登录机会,在3次内(包含三次)输入正确的用户名和密码后给出登录成功的相应提示。
超过3次用户名或密码输入有误,则提示登录失败,无法再继续登录。
在登录时,需要比较用户输入的用户名密码与已知的用户名密码是否相同,本案例可以使用Scanner类以及String类的相关方法实现比较操作。
2.运行结果登录成功的运行结果如图5-3所示图5-3 用户登录成功运行结果图登录失败的运行结果如图5-4所示图5-3 用户登录失败运行结果图【案例任务】●学会分析“模拟用户登录”任务的实现思路。
●根据思路独立完成“模拟用户登录”任务的源代码编写、编译及运行。
●掌握String类及Scanner类中常用方法的使用。
●掌握之前学习的if判断知识。
【案例思路】(1)分析任务描述可知,已知用户名密码,定义两个字符串表示即可。
(2)键盘录入要登录的用户名密码。
用Scanner实现。
(3)拿键盘录入的用户名密码和已知的用户名密码进行比较,给出相应的提示,字符串内容比较用equles实现。
(4)循环实现多次机会。
这里次数明确,用for循环实现。
并在登录成功的时候。
用break结束循环。
【案例实现】模拟用户登录的实现代码,如文件5-3所示。
文件5-3 example3.java1package com.itheima;2import java.util.Scanner;3public class example3 {4public static void main(String[] args) {5//已知用户名密码,定义两个字符串表示即可。
JAVA模拟用户登陆注册,查看用户、退出系统
}
}else if(option.equals("q")){
System.exit(0);
}
}
}
}
{
Scanner scanner=new Scanner(System.in);
User [] Users=new User[15];
System.out.println("\t\t欢迎您来到JAVA的世界!");
int index=0;
while(true){
System.out.println("请选择功能:注册(A)查看用户(B)退出系统(q)");
if(index<15){
Users[index]=new User(name,password);
}else{
System.out.println("内存分配不足,无法存数据!");
//System.exit(0);
}
// System.out.println("用户名:"+Users[index].name+"密码:"+Users[index].password);
String option=scanner.next();
if(option.equals("A")){
System.out.print("请输入用户名:");
String name=scanner.next();
Systng password=scanner.next();
index++;
}else if(option.equals("B")){
Java实现简单GUI登录和注册界面
Java实现简单GUI登录和注册界⾯本⽂实例为⼤家分享了Java实现简单GUI登录和注册界⾯的具体代码,供⼤家参考,具体内容如下先看效果图:登陆界⾯:注册界⾯:实现代码如下:⼀、登陆界⾯package cn.bms.view;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;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.JTextField;import javax.swing.border.MatteBorder;import cn.bms.tools.GUITools;/** 登录窗⼝*/@SuppressWarnings("serial")public class AdminLogin extends JFrame {private JPanel contentPanel = new JPanel();// Label标签存放背景图⽚private JLabel label;// 设置按钮组件private JButton login = new JButton("登录"), register = new JButton("注册");private JLabel jlb1 = new JLabel("⽤户名:"), jlb2 = new JLabel("密码:"), jlbtitle = new JLabel("登录界⾯");// 设置⽂本框组件private JTextField admin = new JTextField(), password = new JTextField();public AdminLogin() {this.init();this.addListener();}private void init() {this.setTitle("管理员登陆界⾯");this.setSize(500, 350);GUITools.center(this);ImageIcon image1 = new ImageIcon("837878.jpg"); // 界⾯背景图⽚JLabel backLabel = new JLabel();backLabel.setIcon(image1);label = new JLabel(image1);label.setBounds(0, 0, 1000, 400);// 在LayeredPane最底层上添加两个带图⽚的标签,并且label2在label上⽅this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));// 将内容⾯板设置为透明,就能够看见添加在LayeredPane上的背景。
Java语言程序设计课程设计实训项目——应用Eclipse Swing可视化开发实现仿QQ程序的界面(第2部分)
1.1应用Eclipse Swing可视化开发实现仿QQ程序的界面(第2部分)1.1.1设计QQ登录主窗口内的登录界面组件——实现中部的Tabbed Panel组件1、在窗口的中间添加一个JTabbedPanel组件(1)在组件库中选中JTabbedPanel组件(2)将该JTabbedPanel组件添加到窗口中2、改变该组件的背景颜色为[191, 230, 255]改变组件对象的background属性,可以改变该组件的背景颜色。
3、改变该组件的对象名称为centerTabbedPanel4、在该JTabbedPanel组件内添加三个内容面板组件(1)在组件库窗口中选中JPanel组件(2)将JPanel组件添加到JTabbedPanel组件内(3)依次再添加另外两个JPanel面板组件到JTabbedPanel组件内但要注意的是,为了能够正确地将面板添加到JTabbedPanel组件内,最好采用下面的方式添加JPanel面板组件,否则对面板的包含关系会出现问题。
(4)最后为下面的结果5、分别命名各个面板对象的名称(1)imCodeSystemLoginPanel(2)emailSystemLoginPanel(3)mobileSystemLoginPanel(4)最后为下面的结果6、设置JTabbedPanel组件和各个Tabbed面板的属性(1)修改每个Tabbed面板的标题文字(Tab Title)属性三个面板的标题文字分别为:●IM号登录●Email登录●手机登录(2)修改每个Tabbed面板的ToolTip帮助信息(Tab Tooltip)属性三个面板的ToolTip帮助信息分别为:●在此页面中需要采用IM号登录系统,并且按Alt+1键可以切换!●在此页面中需要采用EMail登录系统,并且按Alt+2键可以切换!●在此页面中需要采用手机号登录系统,并且按Alt+3键可以切换!(3)最后实际运行后的结果如下:7、为IM号登录的Tabbed面板添加标题图标(Tab Icon)(1)直接选择目标图标文件(2)在用户化代码对话框中输入下面的代码new ImageIcon(getClass().getResource("/images/loginframe/imtabImage.jpg")) (3)输入代码后的结果图示8、为Email登录的Tabbed面板添加标题图标(Tab Icon)(1)在用户化代码对话框中输入下面的代码new ImageIcon(getClass().getResource("/images/loginframe/emailtabImage.jpg")) (2)输入代码后的结果图示9、为手机号登录的Tabbed面板添加标题图标(Tab Icon)(1)在用户化代码对话框中输入下面的代码new ImageIcon(getClass().getResource("/images/loginframe/mobiletabImage.jpg")) (2)输入代码后的结果图示10、测试现在的效果11、为每个Tabbed面板添加快捷键(1)在左下类结构窗口中选中Tabbed面板组件对象(centerTabbedPanel)(2)在“用户化代码”对话框中输入下面的代码centerTabbedPanel.setMnemonicAt(0, KeyEvent.VK_1);centerTabbedPanel.setMnemonicAt(1, KeyEvent.VK_2);centerTabbedPanel.setMnemonicAt(2, KeyEvent.VK_3);(3)然后再导入import java.awt.event.KeyEvent;包语句(4)最后测试是否能够Alt+1、Alt+2和Alt+3分别切换各个Tabbed面板注意:可以设置Tabbed面板组件对象的selectedIndex属性值,改变Tabbed面板组件对象的默认选中的面板(5)改变各个面板的背景颜色[192,230,255]。
java制作登陆界面
利用java制作登陆界面
首先先简单介绍一些这个程序,我觉得还是有图更好的能说明吧!所以我们根据图看它的控件。
运行界面如上
由运行结果可以看出程序的控件主要有以下几个:
有一个窗体,两个标签分别用来显示账号和密码。
还有两个文本框控件用来将来接受你的密码和账号信息。
还有就是一个登陆按钮控件
这就是基本控件好了然后就没什么了。
然后就是一些控件信息的设置了
密码账号不为空登陆成功
信息输入不正确不能登录
大家可以看见这三个图大致一样。
是的我只是改变了输出的语句大家一会看代码可以看见。
为了锻炼编程能力,以免有些人直接复制粘贴。
所以这里不给你们代码。
但是给了图片格式的,你可以自己先写。
然后看我写的。
这样你会得到提高。
人非圣贤。
孰能无过有写的不好的地方还请多多原谅。
代码中已经标注的很清楚了。
代码是本人独创,如果又不懂的地方。
可以联系我。
我们共同讨论。
我期待我们一起在编程的道路上成长。
用java写一个登陆注册界面代码
用java写一个登陆注册界面代码Java程序如下:importjava.awt.GridLayout;importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener;importjava.util.ArrayList;importjava.util.List;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPasswordField;importjavax.swing.JTextField;//登录窗体类publicclassMainextendsJFrameimplementsActionListener,Runnab le{privatestaticfinallongserialVersionUID=1L;protectedJLabellblPrompt,lblTime,lblUserName,lblPassword ;protectedJTextFieldtxtUserName;protectedJPasswordFieldtxtPassword;protectedJButtonbtnLogin,btnRegister;protectedstaticThreadthread=null; publicstaticvoidmain(String[]args){Data.init();MainfrmLogin=newMain();thread=newThread(frmLogin);thread.start();}publicMain(){super(用户登录);initComponent();}//初始化控件publicvoidinitComponent(){lblPrompt=newJLabel(登录剩余时间(秒):);lblTime=newJLabel(60);lblUserName=newJLabel(用户名:);lblPassword=newJLabel(密码:);txtUserName=newJTextField(10);txtPassword=newJPasswordField(10);btnLogin=newJButton(登录);btnRegister=newJButton(注册);btnLogin.addActionListener(this);btnRegister.addActionListener(this);this.setLayout(newGridLayout(4,2));this.add(lblPrompt);this.add(lblTime);this.add(lblUserName);this.add(txtUserName);this.add(lblPassword);this.add(txtPassword);this.add(btnLogin);this.add(btnRegister);txtUserName.setFocusable(true);this.setSize(400,200);this.setVisible(true);}@OverridepublicvoidactionPerformed(ActionEvente){JButtonbtn=(JButton)e.getSource();if(btn==btnLogin){if(txtUserName.getText().equals()||txtUserName.getText() .trim().equals()){JOptionPane.showMessageDialog(this,用户名不能为空!,登录失败,JOptionPane.ERROR_MESSAGE);return;}if(txtPassword.getText().equals()){JOptionPane.showMessageDialog(this,登录密码不能为空!,登录失败,JOptionPane.ERROR_MESSAGE);return;}StringuserName=null;Stringpassword=null;userName=txtUserName.getText().trim();password=txtPassword.getText();inti;for(i=0;iData.customers.size();i++){if(Data.customers.get(i).getUserName().equals(userName)& amp;&Data.customers.get(i).getPassword().equals(passwor d)){break;}}if(iData.customers.size()){JOptionPane.showMessageDialog(this,欢迎您,+userName,登录成功,RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(this,登录失败,请检查用户名和密码是否正确......,登录失败,JOptionPane.ERROR_MESSAGE);}}elseif(btn==btnRegister){this.dispose();newRegister();}}@Overridepublicvoidrun(){while(true){try{Thread.sleep(1000);intnum=Integer.valueOf(lblTime.getText());if(num=0){JOptionPane.showMessageDialog(this,时间到,窗口即将关闭!,登录失败,RMATION_MESSAGE);System.exit(0);}else{num--;}lblTime.setText(String.valueOf(num));}catch(Exceptione){e.printStackTrace();}}}}//用户注册窗体类classRegisterextendsJFrameimplementsActionListener{ privatestaticfinallongserialVersionUID=1L;protectedJLabellblUserName,lblPassword,lblConfirmedPassw ord;protectedJTextFieldtxtUserName;protectedJPasswordFieldtxtPassword,txtConfirmedPassword;protectedJButtonbtnRegister,btnReset;publicRegister(){super(用户注册);initComponent();}//初始化控件publicvoidinitComponent(){lblUserName=newJLabel(用户名:);lblPassword=newJLabel(密码:);lblConfirmedPassword=newJLabel(确认密码:);txtUserName=newJTextField(10);txtPassword=newJPasswordField(10);txtConfirmedPassword=newJPasswordField(10);btnReset=newJButton(重置);btnRegister=newJButton(注册);btnReset.addActionListener(this);btnRegister.addActionListener(this);this.setLayout(newGridLayout(4,2));this.add(lblUserName);this.add(txtUserName);this.add(lblPassword);this.add(txtPassword);this.add(lblConfirmedPassword);this.add(txtConfirmedPassword);this.add(btnRegister);this.add(btnReset);txtUserName.setFocusable(true);this.setSize(400,200);this.setVisible(true);}@OverridepublicvoidactionPerformed(ActionEvente){JButtonbtn=(JButton)e.getSource();if(btn==btnRegister){if(txtUserName.getText().equals()||txtUserName.getText() .trim().equals()){JOptionPane.showMessageDialog(this,用户名不能为空!,注册失败,JOptionPane.ERROR_MESSAGE);return;}if(txtPassword.getText().equals()){JOptionPane.showMessageDialog(this,登录密码不能为空!,注册失败,JOptionPane.ERROR_MESSAGE);return;}if(txtConfirmedPassword.getText().equals()){JOptionPane.showMessageDialog(this,确证密码不能为空!,注册失败,JOptionPane.ERROR_MESSAGE);return;}if(!txtConfirmedPassword.getText().equals(txtPassword.ge tText())){JOptionPane.showMessageDialog(this,两次密码必须一致!,注册失败,JOptionPane.ERROR_MESSAGE);return;}StringuserName=null;Stringpassword=null;inti;userName=txtUserName.getText().trim();password=txtPassword.getText();for(i=0;iData.customers.size();i++){if(Data.customers.get(i).getUserName().equals(userName)) {break;}}if(iData.customers.size()){JOptionPane.showMessageDialog(this,该用户名已经被注册,请选用其他用户名!,注册失败,JOptionPane.ERROR_MESSAGE);}else{Data.customers.add(newCustomer(userName,password));JOptionPane.showMessageDialog(this,恭喜+userName+注册成功,请牢记您的用户名和密码。
QQ仿真登录
QQ仿真登录QQ仿真登录2. [代码]Swing写的QQ登录界面跳至[2] [全屏预览]view sourceprint?001importjava.awt.Container;002import java.awt.Image;003import java.awt.event.ActionEvent;004importjava.awt.event.ActionListener;005 006importjavax.swing.ImageIcon;007importjavax.swing.JButton;008importjavax.swing.JCheckBox;009importjavax.swing.JComboBox;010importjavax.swing.JFrame;011import javax.swing.JLabel;012import javax.swing.JOptionPane;013importjavax.swing.JPasswordField;014importjavax.swing.JTextField;015 016/**017 * 仿QQ登录界面018 *019 * @author jiang020 */021public class GUIQQ extends JFrame {022 // 用户名023 private JTextField username;024 // 密码025 private JPasswordField password;026 // 小容器027 private JLabel jl1;028 private JLabel jl2;029 private JLabel jl3;030 private JLabel jl4;031 032 // 小按钮033 private JButtonbu1;034 private JButton bu2;035 private JButtonbu3;036 037 // 复选框038 private JCheckBox jc1;039 private JCheckBox jc2;040 041 // 列表框042 private JComboBox jcb;043 044 /*045 * 构造方法046*/047 public GUIQQ() {048 // 设置窗口标题049 this.setTitle("QQ2012正式版");050 // 窗体组件初始化051 init();052this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);053 // 设置布局方式为绝对定位054this.setLayout(null);055 056this.setBounds(0, 0, 355, 265);057 // 设置窗体的标题图标058 Image image = newImageIcon("e:/a.gif").getImage();059this.setIconImage(image);060 061 // 窗体大小不能改变062 this.setResizable(false);063064 // 居中显示065this.setLocationRelativeTo(null);066 067 // 窗体可见068 this.setVisible(true);069 }070 071 /*072 * 初始化方法073 */074 public void init() {075// 创建一个容器076 Container con =this.getContentPane();077 jl1 = new JLabel();078// 设置背景图片079 Image image1 = new ImageIcon("e:/background.jpg").getImage();080jl1.setIcon(new ImageIcon(image1));081jl1.setBounds(0, 0, 355, 265);082 083 // QQ 登录头像设定084 jl2 = new JLabel();085Image image2 = new ImageIcon("e:/a.gif").getImage();086jl2.setIcon(new ImageIcon(image2));087jl2.setBounds(40, 95, 50, 60);088 089 // 用户号码登录输入框090 username = new JTextField();091 username.setBounds(100, 100, 150, 20);092 // 用户号码登录输入框旁边的文字093 jl3 = new JLabel("注册账号");094 jl3.setBounds(260, 100, 70, 20);095 096 // 密码输入框097 password = new JPasswordField();098 password.setBounds(100, 130, 150, 20);099 // 密码输入框旁边的文字100jl4 = new JLabel("找回密码");101 jl4.setBounds(260, 130, 70, 20);102 103 // 输入框下方文字104jc1 = new JCheckBox("记住密码");105jc1.setBounds(105, 155, 80, 15);106 jc2 = new JCheckBox("自动登录");107 jc2.setBounds(185, 155, 80, 15);108 109 // 用户登录状态选择110jcb = new JComboBox();111 jcb.addItem("在线");112 jcb.addItem("隐身");113 jcb.addItem("离开");114 jcb.setBounds(40, 150, 55, 20);115 116 // 按钮设定117 bu1 = new JButton("登录");118bu1.setBounds(280, 200, 65, 20);119 // 给按钮添加1个事件120 bu1.addActionListener(new ActionListener() {121 122@Override123 public voidactionPerformed(ActionEvent e) {124 String str=e.getActionCommand();125 if("登录".equals(str)){126 String getName=username.getText();127// String getPwd =password.getText();128JOptionPane.showConfirmDialog(null, "您输入的用户名是"+getName);129 }130131 }132 });133 134135 bu2 = new JButton("多账号");136bu2.setBounds(5, 200, 75, 20);137 bu3 = new JButton("设置");138 bu3.setBounds(100, 200, 65, 20);139 140 // 所有组件用容器装载141jl1.add(jl2);142 jl1.add(jl3);143jl1.add(jl4);144 jl1.add(jc1);145jl1.add(jc2);146 jl1.add(jcb);147jl1.add(bu1);148 jl1.add(bu2);149jl1.add(bu3);150 con.add(jl1);151con.add(username);152 con.add(password);153154 }155 156 public static void main(String[] args) {157 // 实例化对象158 GUIQQ qq = new GUIQQ();159 }160 161}。
