自定义日历显示日期,自定义日历日期,public class
分享于 点击 4008 次 点评:218
自定义日历显示日期,自定义日历日期,public class
public class CalendarHack extends JPanel { protected Image background, highlight, day_img; protected SimpleDateFormat month = new SimpleDateFormat("MMMM");protected SimpleDateFormat year = new SimpleDateFormat("yyyy"); protected SimpleDateFormat day = new SimpleDateFormat("d"); protected Date date = new Date(); public void setDate(Date date) { this.date = date; } public CalendarHack() { background = new ImageIcon("calendar.png").getImage(); highlight = new ImageIcon("highlight.png").getImage(); day_img = new ImageIcon("day.png").getImage(); this.setPreferredSize(new Dimension(300,280)); } public void paintComponent(Graphics g) { ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.drawImage(background,0,0,null); g.setColor(Color.black); g.setFont(new Font("SansSerif",Font.PLAIN,18)); g.drawString(month.format(date),34,36); g.setColor(Color.white); g.drawString(year.format(date),235,36); } } Calendar today = Calendar.getInstance(); today.setTime(date); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.DATE,1); cal.add(Calendar.DATE,-cal.get(Calendar.DAY_OF_WEEK)+1); for(int week = 0; week < 6; week++) { for(int d = 0; d < 7; d++) { Image img = day_img; Color col = Color.black; // only draw if it's actually in this month if(cal.get(Calendar.MONTH) == today.get(Calendar.MONTH)) { if(cal.equals(today)) { img = highlight; col = Color.white; } g.drawImage(img,d*30+46,week*29+81,null); g.drawString(day.format(cal.getTime()), d*30+46+4,week*29+81+20); } cal.add(Calendar.DATE,+1); } }//该片段来自于http://byrx.net
用户点评