java 备忘录编写源代码及运行界面截图.docx
《java 备忘录编写源代码及运行界面截图.docx》由会员分享,可在线阅读,更多相关《java 备忘录编写源代码及运行界面截图.docx(54页珍藏版)》请在冰豆网上搜索。
![java 备忘录编写源代码及运行界面截图.docx](https://file1.bdocx.com/fileroot1/2023-6/28/14a9aee7-7ebb-4685-be5d-badfbcf11b0e/14a9aee7-7ebb-4685-be5d-badfbcf11b0e1.gif)
java备忘录编写源代码及运行界面截图
//Memorial.java
importjava、awt、*;
import java.awt.event。
*;
importjava、awt、image。
BufferedImage;
import java。
io。
*;
importjava、util、*;
importjavax.imageio.ImageIO;
importjavax、swing。
*;
publicclassMemorialextendsJFrameimplementsActionListener{
/**
ﻩ *@paramargs
*/
privateJLabel title,picture,mark,jl1,jl2,jl3,jl4;
privateJTextFieldjt1,jt2,jt3;ﻩ
ﻩprivateJButtonOk,Cancle;
privatestaticStringname1=null;
privatestaticString pass1= null;
ﻩ// 构造函数
ﻩpublic Memorial(){
ﻩtitle=newJLabel("我得备忘录”);
picture=new JLabel(newImageIcon(”photos/3.jpg"));//背景标签
ﻩ/*mark=newJLabel(new ImageIcon(”3。
jpg”)); */
ﻩjl1 =newJLabel("登录名:
");
jl2=newJLabel("登录密码:
");
ﻩjl3=new JLabel();
ﻩjl4=newJLabel("瞧不清");
jt1= new JTextField();
ﻩﻩjt2 =newJTextField();
ﻩjt3=new JTextField();
Ok=newJButton("登录");
ﻩﻩCancle =newJButton("取消");ﻩﻩ
}
ﻩ//页面布局
ﻩpublicvoidlaunchFrame(){
ﻩJPanelp=(JPanel)getContentPane();
ﻩjl3。
setText(getcode());
ﻩjl3、setForeground(Color.cyan); //设置验证码得颜色
jl3。
setBorder(BorderFactory、createRaisedBevelBorder());//使验证码凸出显示
ﻩjl4。
setForeground(Color、magenta);//设置“瞧不清”标签得前景色为洋红色
jl4。
addMouseListener(newaddEvent()); //为“瞧不清”标签添加鼠标监听器
ﻩOk、addActionListener(this); //为“登录”按钮添加监听器
ﻩﻩCancle。
addActionListener(this);//为“取消”按钮添加监听器
ﻩﻩOk.setBorder(BorderFactory。
createRaisedBevelBorder()); //使按钮凸出显示
ﻩCancle、setBorder(BorderFactory、createRaisedBevelBorder());
ﻩ//****设置背景图片
ﻩp、setLayout(null);//使用setBounds(),必须使布局为nullﻩ
ﻩﻩpicture、setBounds(0,0,500,330);
ﻩp、add(picture);
ﻩp.setOpaque(false);//使内容窗格透明
ﻩ//把背景图片添加到分层窗格得最底层作为背景
ﻩgetLayeredPane().add(picture,new Integer(Integer。
MIN_VALUE));
//****设置标题
ﻩtitle。
setForeground(Color、red);
title.setFont(newFont("华文行楷",Font、BOLD,20));ﻩﻩ
ﻩtitle.setBounds(190,20,120,40);
ﻩp、add(title);
ﻩ//****设置图标
ﻩBufferedImage icon= null;
ﻩﻩtry{
icon=ImageIO、read(newFile(”photos/9。
jpg” ));
ﻩthis、setIconImage(icon);
ﻩ}catch(Exceptione){
ﻩﻩ}
ﻩjl1。
setBounds(140,80,100,25);
ﻩp、add(jl1);
ﻩjt1。
setBounds(240,80,100,25);
p、add(jt1);
jl2。
setBounds(140,120,100,25);ﻩﻩ
ﻩp。
add(jl2);ﻩ
ﻩjt2、setBounds(240,120,100,25);
ﻩp。
add(jt2);
ﻩﻩjt3。
setBounds(140,160,70,25);
ﻩﻩp、add(jt3);ﻩ
ﻩjl3。
setBounds(250,160,40,25);
ﻩﻩp、add(jl3);
ﻩjl4.setBounds(300,160, 50, 25);
ﻩp.add(jl4);
ﻩOk.setBounds(150,220,60,30);
ﻩp。
add(Ok);
ﻩCancle。
setBounds(260,220,60,30);
ﻩp。
add(Cancle);
ﻩsetTitle("登录界面”);
setBounds(300,200,500,330);ﻩ
ﻩsetResizable(false);//窗口不能被拖动
ﻩsetVisible(true);ﻩﻩ
ﻩﻩsetDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);
ﻩ}
//获取验证码
ﻩpublic Stringgetcode(){
ﻩﻩRandomrd=newRandom();
ﻩﻩStringstr=”";
ﻩinta[]=newint[4];
ﻩﻩfor(inti=0; i<4;i++){
ﻩa[i]=rd.nextInt(200);
ﻩif((a[i]>=48&&a[i]<=57)||(a[i]〉=65&&a[i]<=90)||(a[i]>=97&&a[i]〈=122)){
str= str + (char)a[i];
ﻩ}
ﻩelse{ //获取得字符不在范围内,获取未成功;
ﻩﻩﻩi——; //i--,保证最终获取到四位得验证码
ﻩ}ﻩ
ﻩ}
return str;
}ﻩ
//从文件中读取正确得用户名
public staticString seekname() throwsIOException{
ﻩﻩInputStreamfin1=new ("message\\用户名。
txt");ﻩ
ﻩbytec[] =newbyte[10];
ﻩintlen=0;
ﻩwhile((len=fin1、read(c))!
=—1){
ﻩﻩname1=newString(c,0,len);
}
ﻩreturnname1;
ﻩ}
//从文件中读取正确得登录密码
ﻩpublicstaticString seekpass()throwsIOException{
ﻩﻩInputStreamfin2= new("message\\登录密码。
txt");
ﻩﻩbytec[]= newbyte[10];
ﻩintlen=0;
ﻩﻩwhile((len=fin2、read(c))!
=—1){
pass1=new String(c,0,len);
}
ﻩ return pass1;
ﻩ}
ﻩ//判断文本框就是否为空
ﻩpublic boolean isEmpty( JTextFieldjt){
ﻩﻩif( jt、getText()。
equals("”)){
ﻩreturntrue;
ﻩ}
ﻩreturnfalse;
ﻩ}
//判断操作就是否非法,主要就是针对各文本框而言得;若文本框为空,提示填写信息
ﻩpublicboolean isLegal(){
if( isEmpty(jt1) ){
ﻩﻩJOptionPane。
showMessageDialog(null,”用户名不能为空!
");
ﻩreturn false;
ﻩ}elseif( isEmpty(jt2) ){
ﻩﻩﻩJOptionPane.showMessageDialog(null,”密码不能为空!
" );
ﻩreturnfalse;
ﻩ}else if(isEmpty( jt3) ){
JOptionPane。
showMessageDialog(null,”请输入验证码!
");
ﻩﻩﻩreturnfalse;
ﻩﻩ}else{
ﻩreturn true;
ﻩ}
}
//按钮事件处理
Override
ﻩpublicvoid actionPerformed(ActionEvente){
ﻩ//TODO Auto-generatedmethodstub
Objectsource=e。
getSource();
ﻩStringname2 =jt1。
getText();
ﻩStringpass2=jt2、getText();
Stringcode2= jt3、getText();
ﻩStringcode1 = jl3.getText();
ﻩﻩif(source==Ok){
ﻩﻩif(isLegal()){//调用isLegal()函数,保证文本框不为空
try{ //调用函数seekname(),seekpass(),文件可能不存在ﻩ
ﻩ if(name2。
equals(seekname())){
ﻩﻩif(pass2、equals(seekpass())){
ﻩﻩif(code2。
equalsIgnoreCase(code1 )){
ﻩﻩ//在用户登录信息完全正确得条件下,进入备忘录(含日历)
ﻩﻩﻩﻩﻩJOptionPane.showMessageDialog(null,"登录成功!
");
ﻩﻩﻩﻩﻩCalendarcalendar=Calendar.getInstance();
ﻩﻩﻩﻩﻩ inty=calendar.get(Calendar。
YEAR);
ﻩﻩﻩ intm=calendar.get(Calendar、MONTH)+1;
ﻩﻩﻩ int d=calendar、get(Calendar。
DAY_OF_MONTH);
ﻩﻩﻩ newCalendarPad(y,m,d);
ﻩﻩthis。
dispose();//关闭登录界面
ﻩﻩ}else{
ﻩﻩﻩJOptionPane、showMessageDialog(this,”验证码错误,请重新输入!
”,”错误提示”,JOptionPane、ERROR_MESSAGE);
ﻩﻩﻩjl3。
setText(getcode());
ﻩﻩﻩﻩ}
ﻩﻩﻩﻩ}else{
ﻩﻩJOptionPane。
showMessageDialog(this,”密码错误,请重新输入!
”,”错误提示”,JOptionPane。
ERROR_MESSAGE);
ﻩﻩ}ﻩ
ﻩﻩﻩ}else{
ﻩﻩﻩJOptionPane。
showMessageDialog(this,"您输入得用户名不存在,请重新输入!
”,"错误提示”,JOptionPane、ERROR_MESSAGE);
ﻩﻩﻩ}
ﻩ}catch(HeadlessException|IOExceptione1){
ﻩﻩﻩﻩ//TODOAuto-generatedcatch block
ﻩﻩe1.printStackTrace();
ﻩ}
ﻩﻩ}
ﻩ}
ﻩif(source ==Cancle){
ﻩﻩ//询问对话框
ﻩﻩint choose=JOptionPane。
showConfirmDialog(null,”确定取消登录?
”,
ﻩﻩﻩ”询问”,JOptionPane。
YES_NO_OPTION);
if(choose == JOptionPane。
YES_OPTION) ﻩ
System、exit(0);//退出登录系统
ﻩ elseif(choose== JOptionPane、NO_OPTION ){
}
ﻩ}
ﻩ}
classaddEventextendsMouseAdapter{
ﻩﻩ@Override
publicvoidmouseClicked(MouseEvente){
ﻩﻩ//TODO Auto-generatedmethodstubﻩ
ﻩjl3。
setText(getcode());
ﻩﻩ}
ﻩ}
ﻩpublicstatic voidmain(String[]args){
ﻩﻩ//TODOAuto—generatedmethodstub
new Memorial()。
launchFrame();ﻩ
}ﻩ
}
//year。
java
importjavax.swing、*;
import java、awt。
*;
importjava、awt。
event、*;
public class YearextendsJPanel//ActionListener接口
{
privateint year;
privateJTextFieldshowYear=null;
privateJButton nextYear,lastYear;
ﻩprivateCalendarPadcal;
ﻩ publicYear(CalendarPadc)
{
ﻩshowYear=newJTextField(4);
ﻩ this。
cal=c;
ﻩ year=cal、getYear();
nextYear=newJButton(”下年”);
ﻩlastYear=new JButton("上年”);
ﻩ launch();
ﻩ }
ﻩ//布局函数
ﻩpublic void launch(){
ﻩﻩ showYear。
setForeground(Color。
blue);
ﻩ showYear.setFont(newFont(”宋体",Font、BOLD,16));
ﻩsetLayout(newGridLayout(1,3,5,5));
ﻩadd(lastYear);
add(showYear);
ﻩ add(nextYear);ﻩ
showYear、addActionListener(newaddEvent());
ﻩ lastYear。
addActionListener(newaddEvent());
ﻩ nextYear、addActionListener(newaddEvent());
ﻩ lastYear、setBorder(BorderFactory。
createRaisedBevelBorder());//使按钮凸出
ﻩ nextYear、setBorder(BorderFactory。
createRaisedBevelBorder());
}
ﻩ //年
ﻩ publicvoidsetYear(intyear)
{
ﻩ this、year=year;
ﻩ showYear。
setText(""+year);
}
ﻩpublicintgetYear()
{
ﻩ returnyear;
}
ﻩ //事件类
ﻩ classaddEventimplementsActionListener{
ﻩﻩ@Override
ﻩ publicvoidactionPerformed(ActionEvente)
ﻩ {
if(e。
getSource()==lastYear) //对年份进行判断操作
ﻩﻩ {
ﻩﻩ year=year—1;
ﻩ showYear、setText(”"+year);
ﻩ cal、setYear(year);
ﻩ cal。
setCal(year,cal。
getMonth());
ﻩ }
else if(e。
getSource()==nextYear)
ﻩ {
ﻩ year=year+1;
ﻩ showYear、setText(""+year);
ﻩﻩ cal。
setYear(year);
ﻩ cal、setCal(year,cal、getMonth());
ﻩ }
ﻩ elseif(e、getSource()== showYear)
{
ﻩ try
ﻩﻩ{
ﻩ ﻩyear=Integer.parseInt(showYear、getText());
ﻩ //年份控制在一定范围
ﻩﻩ ﻩ if(year>=—10000&&year<=10000){ﻩﻩ
ﻩ showYear。
setText(""+year);
cal。
setYear(year);
ﻩﻩﻩ cal、setCal(year,cal、getMonth());
ﻩ ﻩ}
else{
ﻩﻩ JOptionPane。
showMessageDialog(null,"输入得年份有误,请重新输入!
”,"错误提示",JOptionPane.ERROR_MESSAGE);
ﻩ showYear、setText("");
ﻩ }
ﻩ }
ﻩ catch(NumberFormatExceptionee)
ﻩ {
ﻩﻩ ﻩ JOptionPane、showMessageDialog(null,”请输入正确得年份格式!
","错误提示",JOptionPane、ERROR_MESSAGE);
ﻩ ﻩshowYear.setText("”);
ﻩ }
}
ﻩ }
ﻩ }
}
//Month。
java
//对月份得选择
importjavax、swing.*;
importjava。
awt.*;
importjava、awt、event。
*;
publicclassMonthextendsJPanel //ActionListener接口
{
privateintmonth;
privateJTextFieldshowMonth=null;
privateJButtonlastMonth,nextMonth;
privateCalendarPadcal;
publicMonth(CalendarPadc)
{
this。
cal=c;
showMonth=newJTextField();
month= c。
getMonth();
nextMonth =newJButton(”下月");
lastMonth=new JButton("上月");
launch();
}
//页面布局
publicvoidlaunch(){
showMonth.setEditable(false);//设置月份不可被编辑
showMonth.setForeground(Color、blue);
showMonth、setFont(newFont("宋体”,Font、BOLD,16));
setLayout(new GridLayout(1,3,5,5));
add(lastMonth);
add(showMonth);
add(nextMonth);
lastMonth。
addActionListener(newaddEvent());
nextMonth.addActionListener(newaddEvent());
lastMonth.setBorder(BorderFactory.createRaisedBevelBorder());
nextMonth。
setBorder(BorderFactory。
createRaisedBevelBorder());
showMonth.setText(""+month);
}
publicvoidsetMonth(int month)
{
if(month<=12&&month>=1)
{
this、month=month;
}
else
{
this.month=1;
}
showMonth。
setText(""+month);
}
publicintgetMonth()
{
returnmonth;
}
// 事件处理
classaddEvent implements ActionListener{
@Override
ﻩpublicvoid actionPerformed(ActionEvente)
ﻩ {
ﻩ if(e。
getSource()==lastMonth)
{
if(month>=2)
{
ﻩ month=month-1;
cal、setMonth(month);
ﻩ cal.setCal(cal、getYear(),month);
ﻩ}
elseif(month==1)
ﻩ {
ﻩ month=12;
ﻩ