




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/Memorial.javaimport java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;import java.io.*;import java.util.*;import javax.imageio.ImageIO;import javax.swing.*;public class Memorial extends JFrame implements ActionListener/* * param args */private JLabel title,picture,mark,jl1,jl2,jl3,jl4;private JTextField jt1,jt2,jt3;private JButton Ok ,Cancle;private static String name1 =null;private static String pass1 = null;/ 构造函数public Memorial()title = new JLabel(我的备忘录);picture = new JLabel(new ImageIcon(photos/3.jpg);/背景标签/*mark = new JLabel(new ImageIcon(3.jpg); */jl1 =new JLabel( 登录名:);jl2 =new JLabel( 登录密码:);jl3 =new JLabel( );jl4 = new JLabel(看不清);jt1 = new JTextField();jt2 = new JTextField();jt3 = new JTextField();Ok = new JButton (登录);Cancle = new JButton(取消);/页面布局 public void launchFrame()JPanel p = (JPanel) getContentPane();jl3.setText( getcode() );jl3.setForeground(Color.cyan); /设置验证码的颜色jl3.setBorder(BorderFactory.createRaisedBevelBorder();/使验证码凸出显示jl4.setForeground(Color.magenta);/设置“看不清”标签的前景色为洋红色jl4.addMouseListener(new addEvent(); /为“看不清”标签添加鼠标监听器Ok.addActionListener(this); /为“登录”按钮添加监听器Cancle.addActionListener(this); /为“取消”按钮添加监听器Ok.setBorder(BorderFactory.createRaisedBevelBorder(); /使按钮凸出显示Cancle.setBorder(BorderFactory.createRaisedBevelBorder();/*设置背景图片p.setLayout(null);/使用setBounds(),必须使布局为nullpicture.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(new Font(华文行楷,Font.BOLD,20);title.setBounds(190,20,120,40); p.add(title); /*设置图标 BufferedImage icon = null; try icon = ImageIO.read( new File( photos/9.jpg ) ); this.setIconImage(icon); catch( Exception e ) 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 String getcode()Random rd = new Random();String str =;int a = new int 4;for(int i = 0; i =48&ai=65&ai=97&ai=-10000&year=10000) showYear.setText(+year); cal.setYear(year); cal.setCal(year,cal.getMonth(); else JOptionPane.showMessageDialog(null,输入的年份有误,请重新输入!,错误提示,JOptionPane.ERROR_MESSAGE); showYear.setText(); catch(NumberFormatException ee) JOptionPane.showMessageDialog(null,请输入正确的年份格式!,错误提示,JOptionPane.ERROR_MESSAGE); showYear.setText(); /Month.java/对月份的选择import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Month extends JPanel /ActionListener接口 private int month; private JTextField showMonth=null; private JButton lastMonth,nextMonth; private CalendarPad cal; public Month( CalendarPad c ) this.cal = c; showMonth = new JTextField(); month = c.getMonth(); nextMonth = new JButton(下月); lastMonth = new JButton(上月); launch(); /页面布局 public void launch() showMonth.setEditable(false); /设置月份不可被编辑 showMonth.setForeground(Color.blue); showMonth.setFont(new Font(宋体,Font.BOLD,16); setLayout(new GridLayout(1,3,5,5); add(lastMonth); add(showMonth); add(nextMonth); lastMonth.addActionListener(new addEvent(); nextMonth.addActionListener(new addEvent(); lastMonth.setBorder(BorderFactory.createRaisedBevelBorder(); nextMonth.setBorder(BorderFactory.createRaisedBevelBorder(); showMonth.setText(+month); public void setMonth(int month) if(month=1) this.month=month; else this.month=1; showMonth.setText(+month); public int getMonth() return month; / 事件处理 class addEvent implements ActionListener Override public void actionPerformed(ActionEvent e) if(e.getSource()=lastMonth) if(month=2) month=month-1; cal.setMonth(month); cal.setCal(cal.getYear(),month); else if(month=1) month=12; cal.setMonth(month); cal.setCal(cal.getYear(),month); showMonth.setText(+month); else if(e.getSource()=nextMonth) if(month12) month=month+1; cal.setMonth(month); cal.setCal(cal.getYear(),month); else if(month=12) month=1; cal.setMonth(month); cal.setCal(cal.getYear(),month); showMonth.setText(+month); / Clock.java/提取当前的年月日时分秒,时钟import java.awt.*;import java.text.SimpleDateFormat;/SimpleDateFormat是一个以与语言环境相关的方式来格式化和分析日期的具体类import java.util.Calendar;import javax.swing.JPanel; /* 1.创建线程一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。 * 接下来可以分配并启动该子类的实例。 * 另一种方法是声明实现 Runnable 接口的类,该类然后实现 run 方法。 * 然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。 * 2.Canvas 组件为Component的一个子类,表示屏幕上一个空白矩形区域, * 应用程序可以在该区域内绘图,或者可以从该区域捕获用户的输入事件。 * 应用程序必须为 Canvas 类创建子类,以获得有用的功能(如创建自定义组件)。 * 必须重写 paint 方法,以便在 canvas 上执行自定义图形。 */class Clock extends Canvas implements Runnable CalendarPad cp; Thread t; /Multi-Thread(斜体)线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。 String time; public Clock(CalendarPad cp) this.cp=cp; setSize(280,40); setBackground( Color.pink ); t = new Thread( this ); /实例化线程 t.start(); /调用线程 Override public void run() while(true) try Thread.sleep(1000); /休眠1秒钟 catch(InterruptedException e) System.out.println(异常); this.repaint(1000); /重画屏幕 /* Graphics 类是所有图形上下文的抽象基类, * 允许应用程序可以在组件(已经在各种设备上实现), * 以及闭屏图像上,进行绘制。 */ /对paint函数进行重写,在 canvas上执行自定义图形 public void paint( Graphics g ) /super.paintComponent(g); SimpleDateFormat sdf=new SimpleDateFormat( yyyy年MM月dd日HH:mm:ss);/格式化时间显示类型 Calendar now=Calendar.getInstance(); / time=sdf.format(now.getTime(); /format()格式化时间对象,得到当前日期和时间 g.setFont(new Font(华文行楷,Font.BOLD,18); g.setColor(Color.red); g.drawString(time,50,25); /使用此图形上下文的当前字体和颜色,在指定的坐标位置,绘制由指定 string 给定的文本 /CalendarPad.java/Calendar日历记事本import java.util.Calendar;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;import java.io.File;public class CalendarPad extends JFrame int year,month,day; private JTextField showDay; private JLabel title; Calendar cal =Calendar.getInstance();/ 实例化Calendar int week; Note note=null; Month ChangeMonth; Year ChangeYear; String w=星期日,星期一,星期二,星期三,星期四,星期五,星期六; private JPanel leftPanel,rightPanel; /构造函数 public CalendarPad( int year,int month,int day ) leftPanel=new JPanel(); /左侧是日历 rightPanel=new JPanel(); /右侧显示相应的记事 this.year=year; this.month=month; this.day=day; ChangeYear=new Year(this); ChangeYear.setYear(year); ChangeMonth=new Month(this); ChangeMonth.setMonth(month); launch(); /页面布局 public void launch() JPanel leftCenter=new JPanel(); /左侧放置日历 JPanel leftNorth=new JPanel(); /右侧放置事件 /*设置图标*/ BufferedImage icon = null; try icon = ImageIO.read( new File( photos/7.jpg ) ); this.setIconImage(icon); catch( Exception e ) /*左面板中间部分的面板布置*/ leftCenter.setLayout(new GridLayout(7,7); title=new JLabel7; showDay=new JTextField42; /day用不可被编辑的文本框显示 for(int j=0;j7;j+) titlej=new JLabel(); titlej.setText(wj); /“星期日” 到 “星期六” titlej.setBorder(BorderFactory.createRaisedBevelBorder(); /创建一个具有凸出斜面边缘的边框,将组件当前背景色的较亮的色度用于突出显示,较暗的色度用于阴影 leftCenter.add(titlej); title0.setForeground(Color.orange);/设置 “星期日” 字体颜色,设置前景色 title6.setForeground(Color.green);/设置 “星期六 ”字体颜色 for(int i=0;i42;i+) showDayi=new JTextField(); showDayi.addMouseListener(new addEvent(); showDayi.setEditable(false); /日期不可被编辑 leftCenter.add(showDayi); /*左面板北面部分的面板,由与年份和月份有关的组件组成*/ JPanel p = new JPanel(); p.setLayout(new GridLayout(1,2); p.add(ChangeYear); p.add(ChangeMonth); leftNorth.add(p); /*左侧面板整体布置*/ leftPanel.setLayout( new BorderLayout() ); leftPanel.add( leftNorth,North ); leftPanel.add( leftCenter,Center ); leftPanel.add( new Clock(this),South); /!调用Clock类实例,显示当前时间 leftPanel.validate(); /*右侧面板整体布局*/ rightPanel.add( new Label( 文本框输入年份,按Enter键确定(负数表示公元前) ),North) ; note=new Note(this); /当前日历 rightPanel.add(note,Center); /把note放在右侧面板中间部分 setCal(year,month); /*备忘录界面总布局*/ Container c = getContentPane();/获得大内容嵌板 JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,rightPanel); c.add(split); /*JSplitPane 用于分隔两个(只能两个)Component, 使用 JSplitPane.HORIZONTAL_SPLIT 可让分隔窗格中的两个 Component 从左到右排列*/ /*Container c = getContentPane(); c.setLayout(new GridLayout(1,2); c.add(leftPanel); c.add(rightPanel); */ /此种添加方式,两个Component之间没有分隔 ,比较突兀 pack(); setTitle(备忘录); setVisible(true); setResizable(false);/窗口不能被拖动 setBounds(350,100,620,350); validate(); /鼠标事件处理,单击某日期,获取该日的备忘录信息 class addEvent extends MouseAdapter Override public void mousePressed( MouseEvent e) JTextField source=(JTextField)e.getSource(); try day = Integer.parseInt(source.getText(); note.setDay(day); note.setTimeLabel(year,month,day); /在右侧面板上显示点击的时间 note.setText(null); note.getLog(year,month,day); /获取该天的备忘录信息 catch(Exception ee) /设置每月的天数 public void setCal(int year,int month) cal.set(year,month-1,1); /调用Calendar类的set()函数,设置年、月 week=cal.get(Calendar.DAY_OF_WEEK)-1; /调用get()函数读取 if(month=1|month=2|month=3|month=5|month=7 |month=8|month=10|month=12) SearchNum(week,31); else if(month=4|month=6|month=9|month=11) SearchNum(week,30); else if(month=2) if(year%4=0&year%100!=0)|(year%400=0) SearchNum(week,29); /闰年 else SearchNum(week,28); /平年 / 查找日期 public void SearchNum(int w_num, int month_num) for( int i = w_num, n = 1; iw_num + month_num; i + ) showDayi.setText(+n); if(n=day) /设置被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风险控制矩阵分析
- 电大电工考试题及答案
- 农产品供应链合作协议内容
- 外科护理学考试题库及答案中专
- 大堂转岗考试题及答案
- 绿色采购和低碳生产承诺书4篇
- 学习中的挫折与坚持议论文9篇
- 《世界地理概况:高中地理课程教案》
- 客户服务支持响应及反馈跟踪系统
- 医疗垃圾处理规范课件
- 2025-2026学年冀人版三年级科学上册(全册)教学设计(附目录)
- 磷化铝管理办法
- 手术室专科护士职业考试试卷与答案
- 门窗工程管理办法
- 小学体育家长会课件
- 依法治校视角下高校后勤管理法律风险的识别与化解策略
- 2025年法学专业基础课程试题及答案
- 腰椎管狭窄症病例讨论
- 部编版语文(2024)二年级上册第一单元综合素养测评A卷(含答案)
- 工程质量事故案例课件
- 多囊卵巢综合症及护理方法
评论
0/150
提交评论