100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > JAVA swing之用户登陆界面

JAVA swing之用户登陆界面

时间:2020-03-20 06:42:29

相关推荐

JAVA swing之用户登陆界面

一:本文主要介绍用java画图写一个用户登录界面,其中包括的功能效果有:

1:新用户的创建

2:将用户信息保存在txt文件,文件路径设置为D:\\map\\Secret1.txt,路径可以自行修改

3:切换用户

4:更改密码

5:可以做到访问电脑硬盘更换头像

二:代码

:共由8个.java文件构成

1:MainFrame

作用:主窗体

代码:

package TEST;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import java.io.IOException;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import TEST.objectContainer;

import TEST.ChangePasswordFrame;

import TEST.ImageBufferFrame;

import TEST.ReadTxtFile;

import TEST.Register;

import TEST.login;

public class MainFrame extends JFrame{

static JButton JB1,JB2;

static JMenu JB3;

JMenuBar menubar=new JMenuBar();

JMenuItem ChangeUser,ChangePassword,Exit;

static ChangePasswordFrame CPF;

static login log;

static Register reg;

static ReadTxtFile read;

static ImageBufferFrame IBF=null;

public MainFrame(){

setSize(500,300);

setLocation(400,400);

JB1=new JButton("用户登录");

JB2=new JButton("选择头像");

JB3=new JMenu("");

JB1.setBounds(10, 10,100 ,100);

JB2.setBounds(10, 10,100 ,100);

JB3.setBounds(10, 10,100 ,100);

ChangeUser=new JMenuItem("切换用户");

ChangePassword=new JMenuItem("修改密码");

Exit=new JMenuItem("退出当前账户");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(new BorderLayout());

add(menubar,BorderLayout.NORTH);

menubar.add(JB1);

menubar.add(JB2);

menubar.add(JB3);

JB3.add(ChangeUser);

JB3.add(ChangePassword);

JB3.add(Exit);

JB2.setVisible(false);

JB3.setVisible(false);

ChangeUser.addActionListener(new changerUser());

ChangePassword.addActionListener(new changePassword());

Exit.addActionListener(new UserLoad());

JB1.addActionListener(new UserLoad());

JB2.addActionListener(new ChangeLogo());

}

class UserLoad implements ActionListener{

public void actionPerformed(ActionEvent e)

{

objectContainer.frame.log.setVisible(true);

objectContainer.frame.log.f1.setText("");

objectContainer.frame.log.f2.setText("");

}

}

class ChangeLogo implements ActionListener{

public void actionPerformed(ActionEvent e)

{

JB2.setText("");

try {

objectContainer.frame.IBF=new ImageBufferFrame();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

class changerUser implements ActionListener{

public void actionPerformed(ActionEvent e)

{

objectContainer.frame.log.setVisible(true);

objectContainer.frame.log.f1.setText("");

objectContainer.frame.log.f2.setText("");

}

}

class changePassword implements ActionListener{

public void actionPerformed(ActionEvent e)

{

objectContainer.frame.CPF.setVisible(true);

objectContainer.frame.CPF.f1.setText("");

objectContainer.frame.CPF.f2.setText("");

}

}

class exit implements ActionListener{

public void actionPerformed(ActionEvent e)

{

JB2.setVisible(false);

JB3.setVisible(false);

}

}

public static void main(String argS[]) throws IOException{

File f1 = new File("D:\\map\\Secret1.txt");

if(!f1.exists()){f1.createNewFile();}

MainFrame frame=objectContainer.buildFrame();

frame.setVisible(true);

CPF=new ChangePasswordFrame();

log=new login();

reg=new Register();

read=new ReadTxtFile();

log.setVisible(false);

CPF.setVisible(false);

reg.setVisible(false);

}

}

2:objectContainer

作用:以便实现mainframe的单例模式,想获取程序中的mainframe,就调用buildFrame()

代码:

package TEST;

public class objectContainer {

static public MainFrame frame;

public static MainFrame buildFrame()

{

if(frame==null) frame=new MainFrame();

return frame;

}

}

3:login

作用:用户登陆界面

代码:

package TEST;

import java.awt.*;

import java.awt.event.*;

import java.io.IOException;

import javax.swing.*;

import TEST.objectContainer;

public class login extends JFrame{

TextField f1;

TextField f2;

TextField f3;

TextField f4;

JButton b1;

JButton b2;

JButton b3;

String power;//表示权限

//ImageIcon icon=new ImageIcon(MainFrame.class.getResource("/res/background.jpg" ));Image ima=icon.getImage();

// JLabel label = new JLabel(new ImageIcon(ima));

login(){

Container cp=getContentPane();

//cp.add(label); //添加图片用

cp.setLayout(new GridLayout(3,1));

Label l1=new Label("账号");

Label l2=new Label("密码");

Panel p1=new Panel();

Panel p2=new Panel();

Panel p3=new Panel();

f1=new TextField(10);

f2=new TextField(10);

f2.setEchoChar('*');

b1=new JButton("登录");

b2=new JButton("重置");

b3=new JButton("注册新用户");

p1.add(l1);

p1.add(f1);

p2.add(l2);

p2.add(f2);

p3.add(b1);

p3.add(b2);

p3.add(b3);

cp.add(p1);

cp.add(p2);

cp.add(p3);

b1.addActionListener(new Enter());

b2.addActionListener(new ReWrite());

b3.addActionListener(new register());

this.setTitle("系统登录");

this.setSize(600,200);

this.setVisible(true);

Toolkit toolkit = Toolkit.getDefaultToolkit();

Dimension scmSize = toolkit.getScreenSize();

this.setLocation(scmSize.width / 2 -300 ,

scmSize.height / 2 -100);

}

/*public static void main(String[] args) {

new login();

}*/

class Enter implements ActionListener{

public void actionPerformed(ActionEvent e)

{

try {

if(objectContainer.frame.read.Read()){

JOptionPane.showMessageDialog(null,"登陆成功");

//添加功能

objectContainer.frame.log.setVisible(false);

objectContainer.frame.JB2.setVisible(true);

objectContainer.frame.JB3.setVisible(true);

objectContainer.frame.JB3.setText(objectContainer.frame.log.f1.getText());

//objectContainer.frame.JB.setVisible(true);

}

else{

JOptionPane.showMessageDialog(null,"账号或密码不正确");

}

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

class ReWrite implements ActionListener{

public void actionPerformed(ActionEvent e)

{

f1.setText("");

f2.setText("");

f1.requestFocus();

}

}

class register implements ActionListener{

public void actionPerformed(ActionEvent e)

{

objectContainer.frame. reg.setVisible(true);

}

}

}

4:Register

作用:用户注册界面

代码:

package TEST;

import java.awt.*;

import java.awt.event.*;

import java.io.IOException;

import javax.swing.*;

public class Register extends JFrame{

TextField f1;

TextField f2;

TextField f3;

JButton b1;

JButton b2;

String power;//表示权限

Register(){

Container cp=getContentPane();

cp.setLayout(new GridLayout(4,1));

Label l1=new Label("账号");

Label l2=new Label("密码");

Panel p1=new Panel();

Panel p2=new Panel();

Panel p4=new Panel();

f1=new TextField(10);

f2=new TextField(10);

f2.setEchoChar('*');

f3=new TextField(10);

b1=new JButton("注册");

b2=new JButton("重置");

p1.add(l1);

p1.add(f1);

p2.add(l2);

p2.add(f2);

p4.add(b1);

p4.add(b2);

cp.add(p1);

cp.add(p2);

cp.add(p4);

b2.addActionListener(new ReWrite());

b1.addActionListener(new register());

this.setTitle("注册界面");

this.setSize(500,200);

Toolkit toolkit = Toolkit.getDefaultToolkit();

Dimension scmSize = toolkit.getScreenSize();

this.setLocation(scmSize.width / 2 -250 ,

scmSize.height / 2 -100);

}

class ReWrite implements ActionListener{

public void actionPerformed(ActionEvent e)

{

f1.setText("");

f2.setText("");

f3.setText("");

f1.requestFocus();

}

}

class register implements ActionListener{

public void actionPerformed(ActionEvent e)

{

try {

if(f1.getText().length()!=0&&f2.getText().length()!=0){

if(!objectContainer.frame.read.ReadUser()){

JOptionPane.showMessageDialog(null, "注册成功!");

new TextOutputTest(); //将账号信息写入到文件中

objectContainer.frame.reg.setVisible(false);

}

else JOptionPane.showMessageDialog(null, "账号已存在!");

}

else{

JOptionPane.showMessageDialog(null, "账号或密码不能为空!!");

}

} catch (HeadlessException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

}

5:ImageBufferFrame

作用:选择头像界面

代码:

package TEST;

import java.awt.FlowLayout;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.ImageIcon;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.filechooser.FileNameExtensionFilter;

import java.awt.FlowLayout;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.ImageIcon;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.filechooser.FileNameExtensionFilter;

public class ImageBufferFrame extends JFrame {

private JFileChooser jfc=new JFileChooser(".");

public ImageBufferFrame() throws IOException{

FileNameExtensionFilter filter1 = new FileNameExtensionFilter("*.png", "png");

FileNameExtensionFilter filter2 = new FileNameExtensionFilter("*.jpg", "jpg");

FileNameExtensionFilter filter3 = new FileNameExtensionFilter("*.jpeg", "jpeg");

jfc.addChoosableFileFilter(filter1);

jfc.addChoosableFileFilter(filter2);

jfc.addChoosableFileFilter(filter3);

jfc.setAcceptAllFileFilterUsed(false);

jfc.setFileFilter(filter2);

File file = jfc.getSelectedFile();

int returnVal = jfc.showOpenDialog(ImageBufferFrame.this);

if(returnVal == JFileChooser.APPROVE_OPTION)

{

String path = jfc.getSelectedFile().getAbsolutePath();

ImageIcon im=new ImageIcon(path);

im.setImage(im.getImage().getScaledInstance(200,200,Image.SCALE_DEFAULT));

objectContainer.frame.JB2.setIcon(im);

//objectContainer.frame.JL.setText(objectContainer.frame.log.f1.getText());

}

}

/*public static void main(String args[]) throws IOException{

ImageBufferFrame IM=new ImageBufferFrame();

IM.setVisible(true);

}*/

}

6:ChangePasswordFrame

作用:修改密码界面

修改方法:把txt文件中的信息全部读出来并更换要更换的密码,然后放到一个String类型的变量中,再把这个变量写入txt文件中(暂时没找到直接在元txt文件进行某一行信息的更换)

代码:

package TEST;

import java.awt.*;

import java.awt.event.*;

import java.io.IOException;

import javax.swing.*;

public class ChangePasswordFrame extends JFrame{

TextField f1;

TextField f2;

TextField f3;

TextField f4;

JButton b1;

JButton b2;

String power;

public ChangePasswordFrame(){

Container cp=getContentPane();

cp.setLayout(new GridLayout(4,1));

Label l1=new Label("原密码");

Label l2=new Label("新密码密码");

Panel p1=new Panel();

Panel p2=new Panel();

Panel p4=new Panel();

f1=new TextField(10);

f2=new TextField(10);

f2.setEchoChar('*');

f3=new TextField(10);

f4=new TextField(30);

b1=new JButton("确定");

b2=new JButton("重置");

p1.add(l1);

p1.add(f1);

p2.add(l2);

p2.add(f2);

p4.add(b1);

p4.add(b2);

cp.add(p1);

cp.add(p2);

cp.add(p4);

b1.addActionListener(new Enter());

b2.addActionListener(new ReWrite());

this.setTitle("修改密码");

this.setSize(600,200);

this.setVisible(true);

Toolkit toolkit = Toolkit.getDefaultToolkit();

Dimension scmSize = toolkit.getScreenSize();

this.setLocation(scmSize.width / 2 -300 ,

scmSize.height / 2 -100);

}

class Enter implements ActionListener{

public void actionPerformed(ActionEvent e)

{

try {

if(objectContainer.frame.read.ReturnPassword()){

JOptionPane.showMessageDialog(null,"密码已修改,请重新登录");

objectContainer.frame.JB2.setVisible(false);

objectContainer.frame.JB3.setVisible(false);

objectContainer.frame.CPF.setVisible(false);

objectContainer.frame.log.setVisible(true);

objectContainer.frame.log.f1.setText("");

objectContainer.frame.log.f2.setText("");

}

else{

JOptionPane.showMessageDialog(null,"原密码不正确");

}

} catch (HeadlessException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (Exception e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

class ReWrite implements ActionListener{

public void actionPerformed(ActionEvent e)

{

f1.setText("");

f2.setText("");

f3.setText("");

f1.requestFocus();

}

}

class register implements ActionListener{

public void actionPerformed(ActionEvent e)

{

objectContainer.frame. reg.setVisible(true);

}

}

}

7:ReadTxtFile

作用:读取txt文件

代码

package TEST;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.LineNumberReader;

import java.io.PrintWriter;

import java.io.RandomAccessFile;

public class ReadTxtFile {

public boolean Read() throws IOException{

File file = new File("D:\\map\\Secret1.txt");

BufferedReader br = new BufferedReader(new FileReader(file));

String line1,line2;

while ((line1 = br.readLine()) != null) {

line2 = br.readLine();

if(line1.equals(objectContainer.frame.log.f1.getText())&&line2.equals(objectContainer.frame.log.f2.getText())){

br.close();

return true;

}

}

br.close();

return false;

}

public boolean ReadUser() throws IOException{

File file = new File("D:\\map\\Secret1.txt");

BufferedReader br = new BufferedReader(new FileReader(file));

String line1,line2;

while ((line1 = br.readLine()) != null) {

line2 = br.readLine();

if(line1.equals(objectContainer.frame.reg.f1.getText())){

br.close();

return true;

}

}

br.close();

return false;

}

public boolean ReturnPassword() throws Exception{

File file = new File("D:\\map\\Secret1.txt");

BufferedReader br = new BufferedReader(new FileReader(file));

String line1,line2;

FileWriter Writer = new FileWriter("D:\\map\\Secret1.txt",true);

while ((line1 = br.readLine()) != null) {

line2 = br.readLine();

if(line2.equals(objectContainer.frame.CPF.f1.getText())){

objectContainer.frame.read.delete(line2,objectContainer.frame.CPF.f2.getText());

return true;

}

}

br.close();

return false;

}

public void delete(String PastWord,String ChangeWord) throws Exception {

File file = new File("D:\\map\\Secret1.txt");

BufferedReader br = new BufferedReader(new FileReader(file));

String s1 = null,s2=null;

String file1 = "";

s1 = br.readLine();

while (s1 != null) {

s2 = br.readLine();

if (s1.equals(objectContainer.frame.log.f1.getText())&&s2.equals(PastWord)) {

file1 +=(s1+"\r\n");

file1 +=(ChangeWord+"\r\n");

}

else {

file1 +=(s1+"\r\n");

file1 +=(ChangeWord+"\r\n");

}

s1 = br.readLine();

}

BufferedWriter bw = new BufferedWriter(new FileWriter(file));

bw.write(file1);

bw.close();

br.close();

}

}

8:TextOutputTest

作用:把编辑框里面的内容写入txt文件

代码:

package TEST;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.PrintWriter;

import java.io.RandomAccessFile;

import java.util.Scanner;

public class TextOutputTest {

private static final String fileName = "D://map//Secret1.txt";

public TextOutputTest () throws IOException{

RandomAccessFile randomFile = new RandomAccessFile("D://map//Secret1.txt", "rw");

long fileLength = randomFile.length();

randomFile.seek(fileLength);

String str1 = objectContainer.frame.reg.f1.getText();

String str2 = objectContainer.frame.reg.f2.getText();

if (str1 != null && str1.length() != 0) {

randomFile.writeBytes(str1+"\r\n");

}

if (str2 != null && str2.length() != 0) {

randomFile.writeBytes(str2+"\r\n");

}

randomFile.close();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。