JAVA swing之用户登陆界面
2015-05-15 16:05
483 查看
一:本文主要介绍用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();
}
}
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();
}
}
相关文章推荐
- Java Swing用户登陆界面
- Java用户登陆界面
- 用java写一个用户登陆界面的代码分享
- java Swing QQ登陆界面
- Java用户登陆界面
- Java用户登陆界面
- 【java】java swing初识:事件触发&登陆界面
- Java学习笔记之三——Java用户登陆界面
- JavaSwing图形界面编程之登陆校验码(一)
- Java用户登陆界面例子 代码
- Java Swing界面编程(23)---事件处理:编写用户验证登录用例
- 用java写一个用户登陆界面
- 用Java swing写的一个个性化界面的音乐播放器
- Java数据结构与算法之数组应用——用户登陆与注册数组实现
- Java Swing界面编程(4)---获取本地字体
- 漂亮的Java Swing界面NimROD
- 银行家算法的java代码实现,Swing写的界面
- Java Swing界面编程(30)---列表框:JList
- javaweb tomcat+jsp+servlet的一个简易登陆界面
- java中jframe 和jpanel的区别 (java的swing界面)