I write out there codes at June,2009 and any students in lzptc ,software department,grade 1 or 2 may need this. package com.wangluo08.design; import javax.swing.*; import java.io.*; import java.awt.*; public class CalendarImage extends JPanel{ /** * */ private static final long serialVersionUID = 6147583208278739577L; File imageFile; //Image image; ImageIcon image; Toolkit tool; public void setImageFile(File f){ imageFile=f; try{ //image=tool.getImage(imageFile.toURI().toURL()); image=new ImageIcon(CalendarImage.class.getResource(f.toString())); } catch(Exception exp){} repaint(); } public void paintComponent(Graphics g){ super.paintComponent(g); int w=getBounds().width; int h=getBounds().height; //int w=image.getIconWidth(); //int h=image.getIconHeight(); g.drawImage(image.getImage(),0,0,w,h,this); } } package com.wangluo08.design; import java.util.Calendar; import com.wangluo08.design.CalendarMessage; public class CalendarMessage { int year=-1,month=-1,day=-1; public void setYear(int year){ this.year=year; } public int getYear(){ return year; } public void setMonth(int month){ this.month=month; } public int getMonth(){ return month; } public void setDay(int day){ this.day=day; } public int getDay(){ return day; } public String[] getMonthCalendar(){ String[] day=new String[42]; Calendar rili=Calendar.getInstance(); rili.set(year,month-1,1); int whichWeek=rili.get(Calendar.DAY_OF_WEEK); int dayAmount=0; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) dayAmount=31; if(month==4||month==6||month==9||month==11) dayAmount=30; if(month==2){ if((year%4==0)&&(year%100!=0)||(year%400==0)) dayAmount=29; else dayAmount=28; } for(int i=0;i<whichWeek-1;i++) day[i]=""; for(int i=whichWeek-1,n=1;i<whichWeek+dayAmount-1;i++){ day[i]=String.valueOf(n); n++; } for(int i=whichWeek+dayAmount-1;i<42;i++) day[i]=""; return day; } } package com.wangluo08.design; import javax.swing.*; import java.awt.*; public class CalendarPad extends JPanel{ /** * */ private static final long serialVersionUID = 8577382848851663575L; int year,month,day; CalendarMessage calendarMessage; JTextField[] showDay; JLabel title[]; String[] week={"SUN 日","MON 一","TUE 二","WED 三","THU 四","FRI 五","SAT 六"}; JPanel north,center; public CalendarPad(){ setLayout(new BorderLayout()); north=new JPanel(); north.setLayout(new GridLayout(1,7)); center=new JPanel(); center.setLayout(new GridLayout(6,7)); add(center,BorderLayout.CENTER); add(north,BorderLayout.NORTH); title=new JLabel[7]; for(int j=0;j<7;j++){ title[j]=new JLabel(); title[j].setFont(new Font("TimesRoman",Font.BOLD,12)); title[j].setText(week[j]); title[j].setHorizontalAlignment(JLabel.CENTER); title[j].setBorder(BorderFactory.createRaisedBevelBorder()); north.add(title[j]); } title[0].setForeground(Color.red); title[6].setForeground(Color.blue); } public void setShowDayTextField(JTextField[] text){ showDay=text; for(int i=0;i<showDay.length;i++){ showDay[i].setFont(new Font("TimesRoman",Font.BOLD,15)); showDay[i].setHorizontalAlignment(JTextField.CENTER); showDay[i].setEditable(false); center.add(showDay[i]); } } public void setCalendarMessage(CalendarMessage calendarMessage){ this.calendarMessage=calendarMessage; } public void showMonthCalendar(){ String[] a=calendarMessage.getMonthCalendar(); for(int i=0;i<42;i++) showDay[i].setText(a[i]); validate(); } } package com.wangluo08.design; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.io.*; public class CalendarWindow extends JFrame implements ActionListener, MouseListener, FocusListener { /** * Vars */ Toolkit tool = Toolkit.getDefaultToolkit(); static PopupMenu pop = new PopupMenu(); private static final long serialVersionUID = 5644378815968640157L; int year, month, day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad; JTextField showYear; // JTextField showMonth; JTextField[] showDay; CalendarImage calendarImage; static Clock clock; JButton nextYear, previousYear; JButton saveDailyRecord, deleteDailyRecord; JComboBox selMonth = new JComboBox(); // JButton readDailyRecord,previousMonth,nextMonth; File dir; Color backColor = Color.white; FileDialog loadFile = new FileDialog(this, "Choose the picture file!", FileDialog.LOAD); MenuItem item_CCC; MenuItem item_CP; File setingFile=new File("seting.properties"); /** * Methods * */ public CalendarWindow() { dir = new File("./dailyRecord"); dir.mkdir(); showDay = new JTextField[42]; for (int i = 0; i < showDay.length; i++) { showDay[i] = new JTextField(); showDay[i].setBackground(backColor); showDay[i].setLayout(new GridLayout(3, 3)); showDay[i].addMouseListener(this); showDay[i].addFocusListener(this); } item_CCC = new MenuItem("更换时钟背景颜色"); item_CP = new MenuItem("更换图片"); item_CCC.addActionListener(this); item_CP.addActionListener(this); pop.add(item_CCC); pop.add(item_CP); calendarMessage = new CalendarMessage(); calendarPad = new CalendarPad(); notePad = new NotePad(); Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH) + 1; day = calendar.get(Calendar.DAY_OF_MONTH); calendarMessage.setYear(year); calendarMessage.setMonth(month); calendarMessage.setDay(day); calendarPad.setCalendarMessage(calendarMessage); // 将日期信息传递到CalendarPad类 calendarPad.setShowDayTextField(showDay); calendarPad.showMonthCalendar(); notePad.setShowMessage(year, month, day); doMark(); calendarImage = new CalendarImage(); calendarImage.setImageFile(new File("pict/re2.jpg")); clock = new Clock(); JSplitPane splitV1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, calendarPad, calendarImage); JSplitPane splitV2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, notePad, clock); JSplitPane splitH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, splitV1, splitV2); add(splitH, BorderLayout.CENTER); showYear = new JTextField("" + year, 6); showYear.setFont(new Font("TimesRoman", Font.BOLD, 12)); showYear.setHorizontalAlignment(JTextField.CENTER); // showMonth=new JTextField(""+month,4); // showMonth.setFont(new Font("TimesRoman",Font.BOLD,12)); // showMonth.setHorizontalAlignment(JTextField.CENTER); showYear.addActionListener(this); // showMonth.addActionListener(this); nextYear = new JButton("下年"); previousYear = new JButton("上年"); // nextMonth=new JButton("下月"); // previousMonth=new JButton("上月"); nextYear.addActionListener(this); previousYear.addActionListener(this); // nextMonth.addActionListener(this); // previousMonth.addActionListener(this); // // DefaultComboBoxModel model; // String[] m=new String[12]; for (int i = 1; i <= 12; i++) { selMonth.addItem(i + "月"); } selMonth.setSelectedIndex(month - 1); // selMonth.setModel(model); selMonth.addActionListener(this); JPanel north = new JPanel(); north.add(previousYear); north.add(showYear); north.add(nextYear); north.add(selMonth); // north.add(showMonth); // north.add(nextMonth); add(north, BorderLayout.NORTH); saveDailyRecord = new JButton("保存日志"); deleteDailyRecord = new JButton("删除日志"); // readDailyRecord=new JButton("读取日志"); saveDailyRecord.addActionListener(this); deleteDailyRecord.addActionListener(this); // readDailyRecord.addActionListener(this); JPanel south = new JPanel(); south.add(saveDailyRecord); south.add(deleteDailyRecord); // south.add(readDailyRecord); add(south, BorderLayout.SOUTH); this.setVisible(true); Toolkit tool = getToolkit(); Dimension dim = tool.getScreenSize(); setBounds((dim.width - 660) / 2, (dim.height - 520) / 2, 660, 520); setResizable(true); disToday(); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(pop);// add(pop); readAndChengePic(); } public void readAndChengePic(){//读入配置文件,改变图片 try{ String fileName = readProperties("image"); Image img = tool.getImage(fileName); ImageIcon imageIn = new ImageIcon(img); calendarImage.image = imageIn; calendarImage.repaint(); return; } catch(Exception e) { e.printStackTrace(); } } public void writeProperties(String key,String value) { FileOutputStream FOS; if(!setingFile.exists()) { setingFile.canExecute(); System.out.println("Creating file:"+setingFile); } Properties properties=new Properties(); properties.put(key, value); try { FOS=new FileOutputStream(setingFile); properties.store(FOS, ""); } catch (FileNotFoundException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } public String readProperties(String key){ String out=""; if(!setingFile.exists()){ try { setingFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Creating fiel"+setingFile); } try { setingFile.createNewFile(); Properties properties=new Properties(); FileInputStream in=new FileInputStream(setingFile); properties.load(in); out=properties.getProperty(key); } catch (IOException e) { e.printStackTrace(); } return out; } private void disToday() { try { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); int nowYear = cal.get(Calendar.YEAR); int showYear = Integer.parseInt(this.showYear.getText()); int nowMonth = cal.get(Calendar.MONTH) + 1; // int showMonth=Integer.parseInt(this.showMonth.getText()); int nowDay = cal.get(Calendar.DAY_OF_MONTH); if (nowYear == showYear) { if (nowMonth == month) { for (int i = 0; i < showDay.length; i++) { if (!showDay[i].getText().equals("")) { if (Integer.parseInt(showDay[i].getText()) == nowDay) { showDay[i].setBackground(Color.green); return; } } } } } for (int i = 0; i < showDay.length; i++) { showDay[i].setBackground(null); } } catch (Exception dT) { System.out.println("disToday() Exception"); dT.printStackTrace(); } ; } public void actionPerformed(ActionEvent e) { if (e.getSource() == item_CCC) { //clock.setBackground(JColorChooser.showDialog(this, "Color ur enjoy!", this.backColor)); clock.seting(); } if (e.getSource() == item_CP) { loadFile.setVisible(true); if (loadFile.getFile() == null) { return; } String fileName = loadFile.getDirectory() + loadFile.getFile(); Image img = tool.getImage(fileName); ImageIcon imageIn = new ImageIcon(img); calendarImage.image = imageIn; calendarImage.repaint(); // TODO item_CP writeProperties("image",fileName); return; } if (e.getSource() == nextYear) { year++; showYear.setText("" + year); calendarMessage.setYear(year); calendarPad.setCalendarMessage(calendarMessage); calendarPad.showMonthCalendar(); notePad.setShowMessage(year, month, day); doMark(); } else if (e.getSource() == previousYear) { year--; showYear.setText("" + year); calendarMessage.setYear(year); calendarPad.setCalendarMessage(calendarMessage); calendarPad.showMonthCalendar(); notePad.setShowMessage(year, month, day); doMark(); } /* * else if(e.getSource()==nextMonth){ month++; if(month>12) month=1; * showMonth.setText(""+month); calendarMessage.setMonth(month); * calendarPad.setCalendarMessage(calendarMessage); * calendarPad.showMonthCalendar(); * notePad.setShowMessage(year,month,day); doMark(); } */ else if (e.getSource() == selMonth) { month = selMonth.getSelectedIndex() + 1; if (month < 1) month = 12; // showMonth.setText(""+month); calendarMessage.setMonth(month); calendarPad.setCalendarMessage(calendarMessage); calendarPad.showMonthCalendar(); notePad.setShowMessage(year, month, day); doMark(); } /* * else if(e.getSource()==previousMonth){ month--; if(month<1) month=12; * showMonth.setText(""+month); calendarMessage.setMonth(month); * calendarPad.setCalendarMessage(calendarMessage); * calendarPad.showMonthCalendar(); * notePad.setShowMessage(year,month,day); doMark(); } */ else if (e.getSource() == showYear) { String s = showYear.getText().trim(); char a[] = s.toCharArray(); boolean boo = false; for (int i = 0; i < a.length; i++) if (!(Character.isDigit(a[i]))) boo = true; if (boo) JOptionPane.showMessageDialog(this, "您输入了非法年份", "警告", JOptionPane.WARNING_MESSAGE); else { year = Integer.parseInt(s); showYear.setText("" + year); calendarMessage.setYear(year); calendarPad.setCalendarMessage(calendarMessage); calendarPad.showMonthCalendar(); notePad.setShowMessage(year, month, day); doMark(); } } /* * else if(e.getSource()==showMonth){ String * s=showMonth.getText().trim(); char a[]=s.toCharArray(); boolean * boo=false; for(int i=0;i<a.length;i++) if(!(Character.isDigit(a[i]))) * boo=true; if(boo) * JOptionPane.showMessageDialog(this,"您输入了非法月份","警告",JOptionPane * .WARNING_MESSAGE); else{ month=Integer.parseInt(s); * showMonth.setText(""+month); calendarMessage.setMonth(month); * calendarPad.setCalendarMessage(calendarMessage); * calendarPad.showMonthCalendar(); * notePad.setShowMessage(year,month,day); doMark(); } } */ else if (e.getSource() == saveDailyRecord) { notePad.save(dir, year, month, day); doMark(); } else if (e.getSource() == deleteDailyRecord) { notePad.delete(dir, year, month, day); doMark(); } // else if(e.getSource()==readDailyRecord){ // notePad.read(dir,year,month,day); // } disToday(); } public void mousePressed(MouseEvent e) { JTextField text = (JTextField) e.getSource(); String str = text.getText().trim(); try { day = Integer.parseInt(str); } catch (NumberFormatException exp) { } calendarMessage.setDay(day); notePad.setShowMessage(year, month, day); // notePad.read(dir, year, month, day); disToday(); if (e.getModifiers() == InputEvent.BUTTON3_MASK) { Component com1 = e.getComponent(); // TODO ?Any advance way to get the MouseEvent position pop.show(this, e.getX() + com1.getX(), com1.getY() + e.getY() + 90); } } public void mouseReleased(MouseEvent e) { }; public void mouseEntered(MouseEvent e) { }; public void mouseExited(MouseEvent e) { }; public void mouseClicked(MouseEvent e) { }; public void focusGained(FocusEvent e) { Component com = (Component) e.getSource(); com.setBackground(Color.pink); } public void focusLost(FocusEvent e) { Component com = (Component) e.getSource(); com.setBackground(backColor); } public void doMark() { for (int i = 0; i < showDay.length; i++) { showDay[i].removeAll(); String str = showDay[i].getText().trim(); try { int n = Integer.parseInt(str); if (isHaveDailyRecord(n)) { JLabel mess = new JLabel("有"); mess.setFont(new Font("TimesRoman", Font.PLAIN, 11)); mess.setForeground(Color.blue); showDay[i].add(mess); } } catch (Exception exp) { } } calendarPad.repaint(); calendarPad.validate(); } public boolean isHaveDailyRecord(int n) { String key = "" + year + "" + month + "" + n; String[] dayFile = dir.list(); boolean boo = false; for (int k = 0; k < dayFile.length; k++) { if (dayFile[k].equals(key + ".txt")) { boo = true; break; } } return boo; } //TODO main public static void main(String args[]) { new CalendarWindow(); } } package com.wangluo08.design; import java.awt.*; import javax.swing.event.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import java.awt.geom.*; import java.util.*; public class Clock extends Canvas implements ActionListener{ /** * */ Propertie p=new Propertie(new File("clock.properties")); String str_bgg=""; boolean drawPic=false; Toolkit tool=Toolkit.getDefaultToolkit(); Image bgimg; Graphics gg; JFileChooser fc=new JFileChooser(); JFrame f;//设置面板 JColorChooser jcc; private static final long serialVersionUID = -6648237931258219197L; Date date; javax.swing.Timer secondTime; int hour,munite,second; Line2D secondLine,muniteLine,hourLine; int a,b,c,width,height; Color cl_bg, cl_m, cl_h, cl_s, cl_p, cl_o; double pointSX[]=new double[60], pointSY[]=new double[60], pointMX[]=new double[60], pointMY[]=new double[60], pointHX[]=new double[60], pointHY[]=new double[60]; public Clock(){ setBackground(cl_bg); initPoint(); readProperties(); secondTime=new javax.swing.Timer(1000,this); secondLine=new Line2D.Double(0,0,0,0); muniteLine=new Line2D.Double(0,0,0,0); hourLine=new Line2D.Double(0,0,0,0); secondTime.start(); } private void initPoint(){ width=getBounds().width; height=getBounds().height; pointSX[0]=0; pointSY[0]=-(height/2*5/6); //秒针、分针、时针的长度不同 pointMX[0]=0; pointMY[0]=-(height/2*4/5); pointHX[0]=0; pointHY[0]=-(height/2*2/3); double angle=6*Math.PI/180; //angle:6度代表的弧度 for(int i=0;i<59;i++){ pointSX[i+1]=pointSX[i]*Math.cos(angle)-pointSY[i]*Math.sin(angle); pointSY[i+1]=pointSY[i]*Math.cos(angle)+pointSX[i]*Math.sin(angle); pointMX[i+1]=pointMX[i]*Math.cos(angle)-pointMY[i]*Math.sin(angle); pointMY[i+1]=pointMY[i]*Math.cos(angle)+pointMX[i]*Math.sin(angle); pointHX[i+1]=pointHX[i]*Math.cos(angle)-pointHY[i]*Math.sin(angle); pointHY[i+1]=pointHY[i]*Math.cos(angle)+pointHX[i]*Math.sin(angle); } for(int i=0;i<60;i++){ pointSX[i]=pointSX[i]+width/2; //坐标平移 pointSY[i]=pointSY[i]+height/2; pointMX[i]=pointMX[i]+width/2; pointMY[i]=pointMY[i]+height/2; pointHX[i]=pointHX[i]+width/2; pointHY[i]=pointHY[i]+height/2; } } public void paint(Graphics g){ //super.paintComponent(g); //super.paint(g); if(drawPic){ try{ g.drawImage(bgimg,0,0,width,height,CalendarWindow.clock); } catch(Exception e){e.printStackTrace();} } else{ setBackground(cl_bg); } initPoint(); for(int i=0;i<60;i++){ //绘制表盘上的小刻度和大刻度 int m=(int)pointSX[i]; int n=(int)pointSY[i]; if(i%5==0){ if(i==0||i==15||i==30||i==45){ int k=10; g.setColor(cl_p); g.fillOval(m-k/2, n-k/2, k, k); //画4个大点 } else{ int k=7; g.setColor(cl_p); g.fillOval(m-k/2, n-k/2, k, k); //画8个小点 } } else{ int k=2; g.setColor(cl_o); g.fillOval(m-k/2, n-k/2, k, k); //画其余的小点 } } g.setColor(cl_p); g.fillOval(width/2-5, height/2-5, 10, 10); //钟表中心的实心圆 Graphics2D g_2d=(Graphics2D)g; g_2d.setColor(cl_s); g_2d.draw(secondLine); BasicStroke bs=new BasicStroke(2f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER); g_2d.setStroke(bs); g_2d.setColor(cl_m); g_2d.draw(muniteLine); bs=new BasicStroke(4f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER); g_2d.setStroke(bs); g_2d.setColor(cl_h); g_2d.draw(hourLine); } public void actionPerformed(ActionEvent e){ if(e.getSource()==secondTime){ date=new Date(); String s=date.toString(); hour=Integer.parseInt(s.substring(11,13)); munite=Integer.parseInt(s.substring(14,16)); second=Integer.parseInt(s.substring(17,19)); int h=hour%12; a=second; b=munite; c=h*5+munite/12; secondLine.setLine(width/2,height/2,(int)pointSX[a],(int)pointSY[a]); muniteLine.setLine(width/2,height/2,(int)pointMX[b],(int)pointMY[b]); hourLine.setLine(width/2,height/2,(int)pointHX[c],(int)pointHY[c]); repaint(); } } public void seting() { fc=new JFileChooser(); //jcc=new JColorChooser(); JButton btn=new JButton("确定"), btn_bg=new JButton("背景色"), btn_m=new JButton("分针"), btn_h=new JButton("时针"), btn_s=new JButton("秒针"), btn_o=new JButton("外圈"), btn_p=new JButton("时刻点"), btn_bgg=new JButton("背景图"); f=new JFrame("Color Seting"); f.setBounds(111, 111, 111, 333); f.setVisible(true); f.setLayout(new FlowLayout()); btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { saveProperties(); f.setVisible(false); } }); btn_bg.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { cl_bg=JColorChooser.showDialog(f,"背景色", cl_bg); drawPic=false; } }); btn_m.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { cl_m=JColorChooser.showDialog(f, "分针", cl_m); } }); btn_h.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { cl_h=JColorChooser.showDialog(f, "时针", cl_h); } }); btn_s.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { cl_s=JColorChooser.showDialog(f, "秒针", cl_p); } }); btn_o.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { cl_o=JColorChooser.showDialog(f, "外圈颜色", cl_o); } }); btn_p.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { cl_p=JColorChooser.showDialog(f, "中间点颜色", cl_p); } }); btn_bgg.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { fc.showDialog(f, ""); String str_testBgg=fc.getSelectedFile().getAbsolutePath(); if(str_testBgg!=null&&!str_testBgg.equals("")) { try{ str_bgg=fc.getSelectedFile().getAbsolutePath(); bgimg=tool.getImage(fc.getSelectedFile().getAbsolutePath()); drawPic=true; } catch(Exception cbgg){cbgg.printStackTrace();} } } }); f.add(btn); f.add(btn_bg); f.add(btn_bgg); f.add(btn_h); f.add(btn_m); f.add(btn_s); f.add(btn_o); f.add(btn_p); f.validate(); } private void readProperties() { try{ str_bgg=p.readProperties("bgimg").toString(); bgimg=tool.getImage(str_bgg); } catch(Exception rp){rp.printStackTrace();} try{ cl_m=string2Color(p.getProperty("cl_m")); cl_h=string2Color(p.getProperty("cl_h")); cl_s=string2Color(p.getProperty("cl_s")); cl_bg=string2Color(p.getProperty("cl_bg")); cl_p=string2Color(p.getProperty("cl_p")); cl_o=string2Color(p.getProperty("cl_o")); show("Read"); } catch(Exception rp){rp.printStackTrace();} try{ if(p.readProperties("drawPic").equals("true")) { drawPic=true; } } catch(Exception rp){rp.printStackTrace();} } private void saveProperties() { if(str_bgg!=""&&str_bgg!=null) { try{ p.put("bgimg",str_bgg); p.put("drawPic",String.valueOf(drawPic)); p.put("cl_m",cl_m.toString()); p.put("cl_p",cl_p.toString()); p.put("cl_o",cl_o.toString()); p.put("cl_s",cl_s.toString()); p.put("cl_h",cl_h.toString()); p.put("cl_bg",cl_bg.toString()); p.stone(); show("saved"); } catch(Exception sp){sp.printStackTrace();} } } public void show(String in){ System.out.println(in); System.out.println(cl_m); System.out.println(cl_h); System.out.println(cl_s); System.out.println(cl_p); System.out.println(cl_o); System.out.println(cl_bg); System.out.println(str_bgg); } public Color string2Color(String in) { StringTokenizer fenxi=new StringTokenizer(in,"="); StringTokenizer fenxi2; Color out=Color.red; int[] rgb=new int[3]; String a=fenxi.nextToken(); try{ for(int i=0;i<3;i++){ a=fenxi.nextToken(); System.out.println(a); fenxi2=new StringTokenizer(a,",]"); a=fenxi2.nextToken(); System.out.println(a); rgb[i]=Integer.parseInt(a); } out=new Color(rgb[0],rgb[1],rgb[2]); } catch(Exception s2c){s2c.printStackTrace();} return out; } } package com.wangluo08.design; import javax.swing.*; import java.awt.*; //import java.awt.event.*; import java.io.*; public class NotePad extends JPanel{ /** * */ private static final long serialVersionUID = -2539834196420049071L; JTextField showMessage; JTextArea text; public NotePad(){ showMessage=new JTextField(); showMessage.setHorizontalAlignment(JTextField.CENTER); showMessage.setFont(new Font("TimesRoman",Font.BOLD,16)); showMessage.setForeground(Color.blue); showMessage.setBackground(Color.pink); showMessage.setBorder(BorderFactory.createRaisedBevelBorder()); showMessage.setEditable(false); text=new JTextArea(10,10); setLayout(new BorderLayout()); add(showMessage,BorderLayout.NORTH); add(new JScrollPane(text),BorderLayout.CENTER); } public void setShowMessage(int year,int month,int day){ showMessage.setText(""+year+"年"+month+"月"+day+"日"); } public void save(File dir,int year,int month,int day) { String dailyContent=text.getText(); String fileName=""+year+""+month+""+day+".txt"; String[] dayFile=dir.list(); boolean boo=false; for(int k=0;k<dayFile.length;k++){ if(dayFile[k].equals(fileName)){ boo=true; break; } } if(boo){ String m=""+year+"年"+month+"月"+day+"已有日志,将新的内容重新保存到日志吗?"; int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok==JOptionPane.YES_OPTION){ try{ File f=new File(dir,fileName); FileWriter out=new FileWriter(f); out.write(dailyContent); out.close(); } catch(IOException exp){} } } else{ String m=""+year+"年"+month+"月"+day+"还没有日志,保存日志吗?"; int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok==JOptionPane.YES_OPTION){ try{ File f=new File(dir,fileName); FileWriter out=new FileWriter(f); out.write(dailyContent); out.close(); } catch(IOException exp){} } } } public void delete(File dir,int year,int month,int day){ String fileName=""+year+""+month+""+day+".txt"; String[] dayFile=dir.list(); boolean boo=false; for(int k=0;k<dayFile.length;k++){ if(dayFile[k].equals(fileName)){ boo=true; break; } } if(boo){ String m="删除"+year+"年"+month+"月"+day+"日的日志吗?"; int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok==JOptionPane.YES_OPTION){ File deleteFile=new File(dir,fileName); deleteFile.delete(); text.setText(""); } } else{ String m=""+year+"年"+month+"月"+day+"号无日志记录"; JOptionPane.showMessageDialog(this,m,"提示",JOptionPane.WARNING_MESSAGE); } } public void read(File dir,int year,int month,int day){ String fileName=""+year+""+month+""+day+".txt"; String[] dayFile=dir.list(); boolean boo=false; for(int k=0;k<dayFile.length;k++){ if(dayFile[k].equals(fileName)){ boo=true; break; } } if(boo){ text.setText(null); try{ File f=new File(dir,fileName); FileReader inOne=new FileReader(f); BufferedReader inTwo=new BufferedReader(inOne); String s=null; while((s=inTwo.readLine())!=null) text.append(s+"/n"); inOne.close(); inTwo.close(); } catch(IOException exp){} } else{ text.setText(null); } } } package com.wangluo08.design; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class Propertie extends Properties{ public File setingFile=new File("seting.properties"); public Propertie(File setingFile) { this.setingFile=setingFile; } public void stone() { FileOutputStream FOS; if(!setingFile.exists()) { setingFile.canExecute(); System.out.println("Creating file:"+setingFile); } try { FOS=new FileOutputStream(setingFile); store(FOS,"Properties"); } catch (Exception e) { e.printStackTrace(); } } public Object readProperties(String key){ Object out=null; if(!setingFile.exists()){ try { setingFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Creating file"+setingFile); } try { FileInputStream in=new FileInputStream(setingFile); load(in); out=getProperty(key); } catch (IOException e) { e.printStackTrace(); } return out; } } package com.wangluo08.design; import java.io.*; import java.util.*; import javax.swing.*; import java.awt.event.*; public class Tips extends JFrame { /** * Var * */ String tips=""; File tipFile=new File("tip.txt"); /** * Methods * */ //构造方法 public Tips(File tipFile) { this.tipFile=tipFile; } //增加tip public void addTips() { } //清除tip public void clearTips(){ //如果所有tips都过期则清除文件内容 } public String readTips() { String tips=this.tips; return tips; } //初始化 public void init(){ } } /** * XML * */