Java日历表实现
日历表是一款常见的利用程序,方便用户查看日期、计划活动等。下面,我们将介绍怎样使用Java编写日历表。
获得当前时间
在Java中,可使用java.util.Calendar类来获得当前时间。通过Calendar类的getInstance()方法,可以获得当前时间的Calendar对象。接下来,可使用get()方法获得年、月、日等信息。
//获得当前时间Calendarnow=Calendar.getInstance();intyear=now.get(Calendar.YEAR);intmonth=now.get(Calendar.MONTH)+1;intday=now.get(Calendar.DAY_OF_MONTH);
绘制日历表
使用Java的Graphics2D类可以绘制各种各样的图形,包括日历表。可以先使用JPanel类创建一个面板,然后重写其paint()方法,绘制日历表格、日期等信息。绘制表格可使用drawLine()方法,绘制日期可使用drawString()方法。该方法需要传入一个绘制出发点和字符串。
//绘制表格Graphics2Dg2=(Graphics2D)g;g2.setStroke(newBasicStroke(2));g2.setColor(Color.BLACK);for(inti=1;i<=6;i++){g2.drawLine(20,60+i30,290,60+i30);}for(inti=1;i<=7;i++){g2.drawLine(20+i40,60,20+i40,240);}//绘制日期g2.setFont(newFont(Arial,Font.BOLD,16));for(inti=1;i<=31;i++){Calendarc=Calendar.getInstance();c.set(year,month-1,i);intdayOfWeek=c.get(Calendar.DAY_OF_WEEK);intx=20+(dayOfWeek-1)40+5;inty=90+((i-1)/7)30;StringdateStr=String.format(%d,i);g2.drawString(dateStr,x,y);}
实现用户交互
为了方便用户选择日期,可以在日历表上添加上下月、选择日期等按钮。可使用swing包中的JButton、JLabel、JTextField等组件,为其添加事件监听器,以实现用户交互。例如,对选择日期按钮,可使用JOptionPane.showInputDialog()方法弹出一个对话框,让用户键入日期,然后对其进行判断,再刷新日历表便可。
//添加选择日期按钮JButtonselectDateBtn=newJButton(选择日期);selectDateBtn.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){Stringinput=JOptionPane.showInputDialog(输入日期(格式:yyyy-mm-dd):);SimpleDateFormatdateFormat=newSimpleDateFormat(yyyy-MM-dd);try{Datedate=dateFormat.parse(input);Calendarc=Calendar.getInstance();c.setTime(date);year=c.get(Calendar.YEAR);month=c.get(Calendar.MONTH)+1;day=c.get(Calendar.DAY_OF_MONTH);repaint();}catch(ParseExceptionex){JOptionPane.showMessageDialog(CalendarPanel.this,日期格式毛病!,毛病,JOptionPane.ERROR_MESSAGE);}}});this.add(selectDateBtn);
桂{哥{网{络www.gUIgeGe.cn