java图形化界面实现登录窗口

登录窗口一般很常见,现在让我们自己也来写一个吧!

PS:很多import是重复的,是因为我是分了几个类写的,必须单独导入

//模拟qq登录窗口
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;

public class QQGUI extends JFrame implements ActionListener{
 private JLabel userLa;
 private JLabel pwdLa;
 private JLabel verCodeLa;//验证码
 private JTextField userTxt;
 private JPasswordField pwdTxt;
 private JTextField verCodeTxt;//验证码
 private JButton sureBt;
 private JButton quitBt;
 private Mypanel mp;

 //构造方法
 public QQGUI()
 {
  Init();
 }
 public void Init()
 {
  Frame frame = new Frame("QQ登录");

  //创建出控件对象(因为上面只是声明出来,并没有给出实际的空间)

  //用户文本
  userLa = new JLabel();
  userLa.setText("用户名:");
  userLa.setSize(60, 50);
  userLa.setLocation(100, 80);

  //密码文本
  pwdLa = new JLabel();
  pwdLa.setText("密码:");
  pwdLa.setSize(50, 50);
  pwdLa.setLocation(100, 120);

  //用户输入框
  userTxt = new JTextField();
  userTxt.setSize(100, 20);
  //this.setSize(width, height)
  userTxt.setLocation(170, 95);

  //密码输入框
  pwdTxt = new JPasswordField();
  pwdTxt.setSize(100, 20);
  pwdTxt.setLocation(170, 135);

  //确认按钮
  sureBt = new JButton("登录");
  sureBt.setSize(60, 25);
  sureBt.setLocation(135, 260);

  //退出按钮
  quitBt = new JButton("退出");
  quitBt.setSize(60, 25);
  quitBt.setLocation(240, 260);

  //验证码文本
  verCodeLa = new JLabel();
  verCodeLa.setText("验证码:");
  verCodeLa.setSize(60, 50);
  verCodeLa.setLocation(100,165);

  //验证码文本框
  verCodeTxt = new JTextField();
  verCodeTxt.setSize(100, 20);
  verCodeTxt.setLocation(170, 180);

  //验证码
  mp = new Mypanel();
  mp.setSize(100, 30);
  mp.setLocation(280, 175);

  //登录方式选择框
  JComboBox xlk=new JComboBox();
  xlk.setSize(60, 20);
  xlk.setLocation(250, 220);
  xlk.addItem("在线");
  xlk.addItem("隐身");
  xlk.addItem("离开");

  this.setLayout(null);
  this.setSize(500, 400);
  this.add(userLa);
  this.add(pwdLa);
  this.add(userTxt);
  this.add(pwdTxt);
  this.add(sureBt);
  this.add(quitBt);
  this.add(verCodeLa);
  this.add(verCodeTxt);
  this.add(mp);
  this.add(xlk);
  sureBt.addActionListener(this);
  quitBt.addActionListener(this);
  this.setVisible(true);
 }
 //具体事件的处理
  public void actionPerformed(ActionEvent e)
  {
   //获取产生事件的事件源强制转换
   JButton bt = (JButton)e.getSource();
   //获取按钮上显示的文本
   String str = bt.getText();
   if(str.equals("登录"))
   {
    if(!CheckIsNull())
    {
     //获取用户所输入的用户名
     String user = userTxt.getText().trim();
     //获取用户所输入的密码
     String pwd = pwdTxt.getText().trim();
     if(checkUserAndPwd(user,pwd))
     {

      //隐藏当前登录窗口
      this.setVisible(false);
      //验证成功创建一个主窗口
      MainFrame frame = new MainFrame();
     }
     else
     {
      //如果错误则弹出一个显示框
      JOptionPane pane = new JOptionPane("用户或密码错误");
      JDialog dialog = pane.createDialog(this,"警告");
      dialog.show();
     }
    }
   }
   else
   {
    //调用系统类中的一个正常退出
    System.exit(0);
   }
  }
  private boolean CheckIsNull()
  {
   boolean flag = false;
   if(userTxt.getText().trim().equals(" "))
   {
    flag = true;
   }
   else
   {
    if(pwdTxt.getText().trim().equals(" "))
    {
     flag = true;
    }
   }
   return flag;
  }
  private boolean checkUserAndPwd(String user,String pwd)
  {
   boolean result = false;
   try
   {
    FileReader file = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\testGUI.txt");
    BufferedReader bre = new BufferedReader(file);
    String str = bre.readLine();

   while(str!=null)
   {
     String[] strs = str.split(",");
     if(strs[0].equals(user))
     {
      if(strs[1].equals(pwd))
      result = true;
     }
     str = bre.readLine();
   }
   file.close();
   }catch(Exception ex)
   {
    System.out.print("");
   }
   return result;
  }
}

//MainFrame类
import javax.swing.*;
public class MainFrame extends JFrame {
 public MainFrame()
 {
  this.setSize(300, 300);
  this.setVisible(true);
 }
}

//验证码的生成
import java.awt.*;
import java.util.*;
public class Mypanel extends Panel {
 public void paint(Graphics g)
 {
  int height = 50;
  int width = 90;
  //验证码框背景颜色
  g.setColor(Color.LIGHT_GRAY);
  //填充验证码背景
  g.fillRect(0, 0, width, height);
  g.setColor(Color.BLACK);
  g.drawRect(0, 0, width-1, height-1);
  Random r = new Random();
  //设置干扰点
  for(int i = 0;i<100;i++)
  {
   int x = r.nextInt(width)-1;
   int y = r.nextInt(height)-1;
   g.drawOval(x, y, 2, 2);
  }
  g.setFont(new Font("黑体",Font.BOLD,20));//设置验证码字体以及大小
  g.setColor(Color.RED);//设置验证码字体颜色
  //生成随机验证码
  char[] tmp = ("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
  StringBuilder sb = new StringBuilder();
  for(int i = 0;i<4;i++)
  {
   int pos = r.nextInt(tmp.length);
   char c = tmp[pos];
   sb.append(c + " ");
  }
  g.drawString(sb.toString(), 10, 15);//写入验证码
 }
}

//下拉框的实现
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class xialakuang extends JFrame {
 private JComboBox comboBox;//定义一个组合框
 public void xia ()
 {

  //JPanel panel = new JPanel();//创建一个JPanel面板
  comboBox = new JComboBox();
  comboBox.addItem("在线");
  comboBox.addItem("隐身");
  comboBox.addItem("离开");

  this.add(comboBox);
  //this.add(panel);
  this.setSize(200, 100);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
 }
}

//测试
public class testQQGUI {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  QQGUI frame = new QQGUI();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java语言图形用户登录界面代码

    本文实例为大家分享了java登录界面的具体实现代码,供大家参考,具体内容如下 1. Login.java package wzb; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.e

  • java图形用户界面实现菜单功能

    本文实例为大家分享了java图形用户界面实现菜单功能的具体代码,供大家参考,具体内容如下 题目:编写一个图形用户界面,实现菜单的功能.有3个一级菜单项:File.Edit和Help.在File菜单项中,有3个二级菜单项:New.Open和Save.在Edit菜单项中,有3个二级菜单项:Copy.Cut和Paste.在Help菜单项中,有一个二级菜单项About.对于每一个二级菜单项,不必真正实现其功能,只要演示它能响应鼠标单击事件即可,如弹出一个对话框或打印一句话. import java.aw

  • java图形界面AWT编写计算器

    一.前言 1)这个计算器是基于java语言下图形界面AWT编写的.其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用.通过联系熟悉掌握AWT基础为深入学习打下基础.这个计算器功能也十分简单,空有其表.不过有兴趣的话可以继续添加功能完善操作等. 2)使用平台:主要使用Myeclipse2014 3)主要知识点:java 基础; awt+swing 二.功能实现及代码展示 1)主要是layout布局的练习,对画板文本框的使用,

  • Java图形用户界面设计(Swing)的介绍

    前言 Swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格.Swing开发人员只用很少的代码就可以利用Swing丰富.灵活的功能和模块化组件来创建优雅的用户界面. Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本

  • Java图形界面开发之简易记事本

    在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*

  • 第一次编写Java流布局图形界面

    本文实例为大家分享了Java流布局图形界面编写代码,供大家参考,具体内容如下 package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() { super("第一个图形界面"); //设置框架窗口标题 this.setSize(200, 130); //设置组件尺寸(宽,高) this.setLocation(300, 240); //设置组件的显

  • 开发基于Java的图形用户界面

    SWT(Standard Widget Toolkit)是IBM推出的"基于java"的图形界面开发库,我之所以说它是"基于java"的意思是程序员编写代码的时候是使用java语言,事实上SWT的底层实现是C语言完成的.但是这些对程序员是透明的. 我们使用SWT开发GUI程序的时候,直接用SWT API来写.事实上很多java的代码是通过JNI去掉用C代码来实现的.针对不同的平台每个类有不同的实现方式,这篇文章的目的不在于讲述SWT的设计原理,如果你对这些感兴趣的话

  • java图形界面编程之模拟血压计

    复制代码 代码如下: package GraphicsCanvas; import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JBut

  • Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import java.util.Calendar; public class CalendarBean { String day[]; int year=2005,month=0; public void setYear(int year) { this.year=year; } public int getYear

  • Java图形用户界面之列表框

    列表框通过Swing组件JList产生,其总是在屏幕上占据固定行数的空间.如果要得到列表框中被选中的元素,只需调用getSelectedValuesList(),它可以产生一个字符串数组,内容为被选中的元素名称.JList组件允许多重选择:如果按住Ctrl键,可以选中所有点击的元素:如果选中一个元素,按住Shift键并单击另一个元素,那么这两个元素之间的所有元素都被选中:要从选中的元素中去掉一个,按住Ctrl键单击该元素即可. 初始化列表框后,接着便是向列表框添加和修改内容.分为静态操作和动态操

随机推荐