Year Planner

Java Snippet

Year Planner

This is a simple year planner using swing (displays the full year, with next/last year buttons)

Screenshot:-

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
class YearPlanner extends JFrame implements ActionListener
{
  int year = Calendar.getInstance().get(Calendar.YEAR);
  JLabel days[][] = new JLabel[12][49];
  String weekdays[] = {"S","M","T","W","T","F","S"};
  JButton back = new JButton("<<< Back 1 Year");
  JButton forward = new JButton("Forward 1 Year >>>");
  JLabel lblYear;
  String sMonths[] = {"January","February","March","April","May","June","July",
                      "August","September","October","November","December"};
  public YearPlanner()
  {
    super("Year Planner");
    setSize(900,485);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container frame = getContentPane();
    frame.setLayout(new BorderLayout());
    JPanel monthHolder = new JPanel(new GridLayout(2,6));
    JPanel month[] = new JPanel[12];
    for(int i = 0; i < month.length; i++) month[i] = new JPanel(new BorderLayout());
    JPanel monthName[] = new JPanel[12];
    for(int i = 0; i < monthName.length; i++) monthName[i] = new JPanel(new FlowLayout());
    JPanel monthDays[] = new JPanel[12];
    for(int i = 0; i < monthDays.length; i++) monthDays[i] = new JPanel(new GridLayout(7,7));
    JLabel lblMonths[] = new JLabel[12];
    for(int i = 0; i < days.length; i++)
    {
      for(int ii = 0; ii < days[i].length; ii++)
      {
        days[i][ii] = new JLabel();
        days[i][ii].setFont(new Font("Ariel",Font.BOLD,10));
        days[i][ii].setPreferredSize(new Dimension(25,25));
        if(ii < 7) days[i][ii].setText("  "+weekdays[ii]);
        monthDays[i].add(days[i][ii]);
      }
    }
    for(int i = 0; i < lblMonths.length; i++)
    {
      lblMonths[i] = new JLabel(sMonths[i]);
      monthName[i].add(lblMonths[i]);
      month[i].add(monthName[i],BorderLayout.NORTH);
      month[i].add(monthDays[i],BorderLayout.SOUTH);
      month[i].setBorder(BorderFactory.createEtchedBorder());
      monthHolder.add(month[i]);
    }
    back.addActionListener(this);
    forward.addActionListener(this);
    JPanel lower = new JPanel();
    lower.add(back);
    lblYear = new JLabel("             Year Planner for "+year+"              ");
    lower.add(lblYear);
    lower.add(forward);
    frame.add(monthHolder,BorderLayout.NORTH);
    frame.add(lower,BorderLayout.SOUTH);
    setDates();
    setLocation(100,100);
    setVisible(true);
  }
 
  public void setDates()
  {
    Calendar cal = Calendar.getInstance();
    for(int x = 0; x < days.length; x++)
    {
      for(int i = 7; i < days[x].length; i++)
      {
        days[x][i].setText("");
      }
      cal.set(year,x,1);
      int firstDay = cal.get(cal.DAY_OF_WEEK)-1+7;
      int ii = 1;
      for(int i = firstDay; i<firstDay+31; i++)
      {
        if(ii < 10) days[x][i].setText("  "+ii);
        else days[x][i].setText(""+ii);
        ii++;
        cal.add(cal.DATE,1);
        if(ii > 27 && cal.get(Calendar.MONTH) != x) break;
      }
    }
    lblYear.setText("             Year Planner for "+year+"              ");
  }
 
  public void actionPerformed(ActionEvent ae)
  {
    if(ae.getSource() == back) year--;
    else year++;
    setDates();
  }
 
  public static void main(String args[]){new YearPlanner();}
}


back    top    main page    vb snippets page      java snippets page     vbscript snippets page   email    Page last modified