JAVA记事本编写密码用户登录案例

首先做出来的效果是这样的

 

实现的功能
 

  基本功能:

(1)新建文件

(2)打开文件

(3)保存文件

(4)退出文件

(5)字数统计

(6)用户密码登录

(7)颜色的选择和背景

 

 

 

 

 

一下是代码和注释部分,

                                  第一部分PublicJFrame

 

 

package windows;



import java.awt.Image;


import javax.swing.JFrame;


public class PublicJframe extends JFrame {

public PublicJframe() {
Image icon=new JFrame().getToolkit().getImage("images/icon.png");
this.setIconImage(icon);
setLocation(200,50);
setResizable(false);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new PublicJframe();
}
}

                                                  第二部分用户Data

 

package Date;



public final class data {
public static final String[][] user={
{"1","123","用户1"},
{"2","456","用户2"}};


}//这里是为用户登录时,添加的用户密码和id

                                                 第三部分login实现

 

 

package windows;



import java.awt.Color;
import java.awt.Container;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;


import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.text.AbstractDocument.Content;


import org.omg.PortableInterceptor.USER_EXCEPTION;


import Date.data;


public class login extends PublicJframe {


private static final Image ImageIcon = null;
private JLabel yhm;
private JLabel mima;
private JTextField txt_zh;
private JPasswordField txt_mima;
private JTextField mm;
private JButton bt_login;
private JButton bt_cz;


private JButton dl;
private JButton cz;


login() {

// this.getContentPane().setLayout(null);
//获取容器 设置为空布局
JFrame frame = new JFrame();
JPanel panel = new JPanel() {
public void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon("images/123.jpg");
// 图片随窗体大小而变化
g.drawImage(icon.getImage(), 0, 0, frame.getSize().width, frame.getSize().height, frame);
}
};
Image icon=new JFrame().getToolkit().getImage("images/icon.png");
frame.setIconImage(icon);
panel.setOpaque(false);
frame.add(panel);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setResizable(false);
panel.setLayout(null);
frame.setTitle("记事本-测试版本");


panel.setBackground(Color.CYAN);
frame.setVisible(true);
panel.setVisible(true);


frame.setBounds(500, 250, 280, 240);
panel.setBounds(500, 250, 280, 240);


JLabel yhm = new JLabel("账号:");
yhm.setBounds(new Rectangle(60, 90, 40, 20));
panel.add(yhm);


JLabel mima = new JLabel("密码:");
mima.setBounds(new Rectangle(60, 120, 40, 20));
panel.add(mima);


JTextField txt_zh = new JTextField();// 账号框
txt_zh.setBounds(new Rectangle(100, 90, 120, 20));
panel.add(txt_zh);
txt_zh.requestFocus();


// JPasswordField txt_mima = new JPasswordField();// 密码框
// txt_mima.setBounds(new Rectangle(100, 120, 120, 20));
// panel.add(txt_mima);

JTextField mm = new JTextField();// 密码框
mm.setBounds(new Rectangle(100, 120, 120, 20));
panel.add(mm);


JButton dl = new JButton("登录", new ImageIcon("images/login.jpg"));
dl.setBounds(new Rectangle(70, 160, 70, 20));
panel.add(dl);


JButton cz = new JButton("重置", new ImageIcon("images/cz.jpg"));
cz.setBounds(new Rectangle(150, 160, 70, 20));
panel.add(cz);


// 登录按钮事件
dl.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
String numeber=txt_zh.getText().toString();
String pwd=mm.getText().toString();
int i;
boolean flag=false; //用于记录登录是否成功的标记变量
String nickname="";
for(i=0;i<Date.data.user.length;i++)
{
if(numeber.equals(Date.data.user[i][0])){
if(pwd.equals(Date.data.user[i][1])){
nickname=Date.data.user[i][2];
flag=true;
break;
}
}
// System.out.println(numeber+pwd);
}
if(flag)
{
txt_zh.requestFocus();
// System.out.println(name);

JOptionPane.showMessageDialog(login.this, "密码正确,正在进入....");
new Txtz();
frame.dispose();
}
else {
txt_zh.setText("");
mm.setText("");
txt_zh.requestFocus();
JOptionPane.showMessageDialog(null, "密码错误,请重新输入....");


}


}
});


// 重置按钮事件


cz.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
txt_zh.requestFocus();
txt_zh.setText("");
mima.setText("");
JOptionPane.showMessageDialog(null, "已经清空");
return;
}
});


}


public static void main(String[] args) {


new login();
}


}

                                      第四部分txt的创建和实现

 

package windows;



import java.awt.BorderLayout;


import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StreamCorruptedException;
import java.util.Calendar;
import java.util.GregorianCalendar;


import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.View;




import windows.login;




public class Txtz extends PublicJframe {







// private static final Component View = null;
private JMenuItem newfile;
private JMenuItem help;
private JMenuItem save;
private JMenuItem exit;
private JScrollPane gdt;

int flag=0;
int length=0;

private JMenuItem c1;
private JMenuItem c2;
private JMenuItem c3;
private JMenuItem c4;
private JMenuItem c5;
private JMenuItem c6;
private JMenuItem qcbg;
private JMenuItem tjbg;

private JTextArea gd;



Txtz() {
JFrame frame = new JFrame();
//frame.getContentPane().setLayout(new GridLayout(1, 2));
frame.getContentPane().setLayout(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
Image icon=new JFrame().getToolkit().getImage("images/icon.png");
frame.setIconImage(icon);
frame.setTitle("记事本");
frame.setVisible(true);
frame.setResizable(false);
frame.setBounds(400, 160, 650, 460);
frame.setBackground(Color.black);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu menu = new JMenu("文件");
JMenu about = new JMenu("作者");
JMenu zh = new JMenu("我要表达自己的心意");


/*   1代表已经保存过了
*   2代表没有保存
    0为初始值
*/


menuBar.add(menu);
menuBar.add(about);
menuBar.add(zh);
JMenuItem wyzh = new JMenuItem("我要表达自己的心意");
JMenuItem newfile = new JMenuItem("新建文件");
JMenuItem openfile=new JMenuItem("打开文件");
JMenuItem help = new JMenuItem("作者");
JMenuItem save = new JMenuItem("保存文件");
JMenuItem exit = new JMenuItem("退出文件");


//2.我要表达自己的心意
wyzh.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub


// JPanel wxzf=new JPanel();
// wxzf.setVisible(true);
// wxzf.setBounds(50, 50, 60, 60);


JOptionPane.showMessageDialog(frame, null, "我要表达自己的心意", JOptionPane.OK_OPTION,
new ImageIcon("images/wx.jpg"));


}
});
//3.时间
//JLabel label3=new JLabel();
//本来想用一个线程来计算时间,后来没有实现
   GregorianCalendar sj=new GregorianCalendar();
int weak=sj.get(Calendar.DAY_OF_WEEK);
int hour=sj.get(Calendar.HOUR_OF_DAY);
int minute=sj.get(Calendar.MINUTE);
int second=sj.get(Calendar.SECOND);
String a=("当前时间为:  "+hour+":"+minute+":"+second+"  "+"周"+weak);
JMenu tiMenu=new JMenu("点击查看当前时间↓");
JMenuItem tJMenuItem=new JMenuItem(a);


//时间
menu.add(newfile);// 新建文件
menu.add(openfile);//打开文件
menu.add(save);// 保存
menu.add(exit);// 退出
about.add(help);// 帮助
zh.add(wyzh);
tiMenu.add(tJMenuItem);
menuBar.add(tiMenu);


help.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(frame, "此软件是 天津现代职业技术学院,2016级 软件1班,杨大枫所做,qq1607160602,\n\n\n                                                            2018/5/19");
}
});

/*
* 4.记事本gd
*
*/
JLabel zs=new JLabel();
zs.setBounds(10, 385, 200, 25);
frame.add(zs);
JTextArea gd = new JTextArea();
JScrollPane scrollPane = new JScrollPane(gd);
scrollPane.setBounds(0, 0, 650, 390);
//gd.setOpaque(false);
gd.setBackground(Color.white);
gd.requestFocus(true);
gd.setLineWrap(true);
gd.setFont(new Font("微软雅黑", Font.PLAIN, 16));//设置其字体样式属性
gd.setForeground(Color.WHITE);
// gd.setBorder(new EmptyBorder(5,5,5,5));
gd.setOpaque(false);
scrollPane.setOpaque(false);
scrollPane.getViewport().setOpaque(false);



/*这部分是一个表格 可以自动显示文本的名称   (未实现)
String[]Columns={"记事本名称","创建时间"};
String[][]VALUE={{"A1","B1"},{"A2","B2"},{"A3","B3"}};
JTable table=new JTable(VALUE, Columns);
JScrollPane scrollPane1 = new JScrollPane(table);
scrollPane1.setBounds(325, 0, 325, 390);


table.setSelectionBackground(Color.black);
table.setSelectionForeground(Color.white);
table.getTableHeader().setBackground(new Color(0x2d7e89));
table.setBackground(new Color(0xDCEBED));
table.getTableHeader().setForeground(Color.white);
table.getTableHeader().setFont(new Font("宋体", Font.BOLD,14));
table.setFont(new Font("微软雅黑", Font.BOLD,13));
table.setForeground(Color.red);
//table.isCellEditable(int row, int Columns); 表格重写双击不能被编辑  未能实现

//frame.add(scrollPane, GridLayout(2, 2));
//frame.add(scrollPane1, GridLayout(2, 2));

frame.add(scrollPane1);
*/
frame.add(scrollPane);
        gd.addCaretListener(new CaretListener() {

@Override
public void caretUpdate(CaretEvent arg0) {
length=gd.getText().toString().length();
zs.setText("当前一共: "+length+" 字");

}
});
// 新建文件
newfile.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {


flag=0;
gd.setText("");
gd.requestFocus();


}
});



JPanel panel = new JPanel() {//绘图为panel添加背景图片
public void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon("images/cat1.jpg");
// 图片随窗体大小而变化
g.drawImage(icon.getImage(), 0, 0, frame.getSize().width, frame.getSize().height,frame);
}
};
frame.add(panel);
panel.setBounds(0, 0, 650, 390);
panel.setVisible(true);
/*
// 保存文本↓

*/
save.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("dictories","."));
int result = chooser.showSaveDialog(Txtz.this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
DataOutputStream dos = new DataOutputStream(new FileOutputStream(chooser.getSelectedFile()));
JOptionPane.showMessageDialog(frame, null, "杨大枫先生提醒:亲爱哒", JOptionPane.OK_OPTION,
new ImageIcon("images/savexl.jpg"));
dos.writeUTF((String)gd.getText());
   
} catch (FileNotFoundException e2) {


e2.printStackTrace();
} catch (IOException e3) {


}
}
flag=1;//保存过为1

return ;
}
});
/*
* 保存文件↑
*/

/*
// 打开文本↓

*/
openfile.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("dictories","."));
int result = chooser.showOpenDialog(Txtz.this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
DataInputStream dis = new DataInputStream(new FileInputStream(chooser.getSelectedFile()));
String text="";
text=dis.readUTF();

JOptionPane.showMessageDialog(frame, null, "text已经打开!", JOptionPane.OK_OPTION,
new ImageIcon("images/openxl.jpg"));
gd.setText(text.toString());//转为字符串,输出到文本框里

} catch (FileNotFoundException e4) {


e4.printStackTrace();
} catch (IOException e5) {


}
}
}
});
/*
* 打开文件↑
*/
//1.退出按钮的触发
exit.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent arg0) {

if(flag==1)
{


int result=JOptionPane.showConfirmDialog(Txtz.this, "是否要退出?", "温馨提示!", JOptionPane.YES_OPTION, JOptionPane.NO_OPTION);
if(result==JOptionPane.YES_OPTION)
{

Txtz.this.dispose();//关闭后台资源
frame.dispose();


}else if(result==JOptionPane.NO_OPTION)
{
JOptionPane.showMessageDialog(Txtz.this, "已经取消");
}
}else 
{
int r1=JOptionPane.showConfirmDialog(Txtz.this, "您还没有保存,是否要保存当前文本?", "温馨提示!", JOptionPane.YES_OPTION, JOptionPane.NO_OPTION);
if(r1==JOptionPane.YES_OPTION)
{
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("dictories","."));
int result = chooser.showSaveDialog(Txtz.this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
DataOutputStream dos = new DataOutputStream(new FileOutputStream(chooser.getSelectedFile()));
JOptionPane.showMessageDialog(frame, null, "杨大枫先生提醒:亲爱哒", JOptionPane.OK_OPTION,
new ImageIcon("images/savexl.jpg"));
dos.writeUTF((String)gd.getText());
   
} catch (FileNotFoundException e2) {


e2.printStackTrace();
} catch (IOException e3) {


}
flag=1;
}

};

}


}
});

//背景颜色
JMenu color=new JMenu("颜色");
JMenu bgtp=new JMenu("背景图片");
JMenu bg=new JMenu("背景颜色");

c1=new JMenuItem("香色");
c2=new JMenuItem("莺色");
c3=new JMenuItem("緑青色");
c4=new JMenuItem("黑色");
c5=new JMenuItem("红绯");
c6=new JMenuItem("无色");

qcbg=new JMenuItem("不显示");
tjbg=new JMenuItem("显示");

c1.setBackground(new Color(142, 116, 55));
c2.setBackground(new Color(135, 132, 59));
c3.setBackground(new Color(64, 131, 94));
c4.setBackground(new Color(19, 12, 14));
c5.setBackground(new Color(239, 65, 54));
c6.setBackground(Color.WHITE);

bg.add(c1);
bg.add(c2);
bg.add(c3);
bg.add(c4);
bg.add(c5);
bg.add(c6);
bgtp.add(qcbg);
bgtp.add(tjbg);
color.add(bg);
color.add(bgtp);
menuBar.add(color);
bg.setEnabled(false);
c1.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
gd.setBackground(new Color(142, 116, 55));//香色
gd.requestFocus();
}
});


c2.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
gd.setBackground(new Color(135, 132, 59));//莺色
gd.requestFocus();
}
});
c3.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
gd.setBackground(new Color(64, 131, 94));//緑青色
gd.requestFocus();
}
});


c4.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

gd.setBackground(new Color(19, 12, 14));//黑色
gd.requestFocus();
}
});

c5.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stubgd.setBackground(new Color(19, 12, 14));//黑色
gd.setBackground(new Color(239, 65, 54));//红绯
gd.requestFocus();
}
});
                c6.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stubgd.setBackground(new Color(19, 12, 14));//白色
gd.setBackground(Color.WHITE);//白色
gd.requestFocus();
}
});
qcbg.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
panel.setVisible(false);
bg.setEnabled(true );
gd.setOpaque(true);
}
});
tjbg.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
panel.setVisible(true);
bg.setEnabled(false);
gd.setOpaque(false);
}
});


}
 
 



private Border EmptyBorder(int i, int j, int k, int l) {
// TODO Auto-generated method stub
return null;
}


private LayoutManager GridLayout(int i, int j) {
// TODO Auto-generated method stub
return null;
}


public static void main(String[] args) {



new Txtz();

}


}

原创,禁止转载,下面是源码

链接:https://pan.baidu.com/s/15qB1vE39GuyDbS4a3BFuSw 密码:2l6z 

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值