//**********************************************************************
// Package
//**********************************************************************
package doc.example;
//**********************************************************************
// Import list
//**********************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Calendar;
import java.util.Locale;
import org.freixas.jcalendar.*;
/**
* This example shows various instances of the JCalendar class.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the Artistic License. You should have
* received a copy of the Artistic License along with this program. If
* not, a copy is available at
*
* opensource.org.
*
* @author Antonio Freixas
*/
// Copyright © 2004 Antonio Freixas
// All Rights Reserved.
public class Example1
extends JFrame
{
//**********************************************************************
// main
//**********************************************************************
public static void
main(
String[] args)
{
new Example1();
}
//**********************************************************************
// Constructors
//**********************************************************************
/**
* Create various instances of a JCalendar.
*/
public
Example1()
{
// Set up the frame
setTitle("Example1");
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(2, 2, 5, 5));
// Create a border for all calendars
Border etchedBorder =
BorderFactory.createEtchedBorder();
Border emptyBorder =
BorderFactory.createEmptyBorder(10, 10, 10, 10);
Border compoundBorder =
BorderFactory.createCompoundBorder(etchedBorder, emptyBorder);
// Create a date listener to be used for all calendars
MyDateListener listener = new MyDateListener();
// Display date and time using the default calendar and locale.
// Display today's date at the bottom.
JCalendar calendar1 =
new JCalendar(
JCalendar.DISPLAY_DATE | JCalendar.DISPLAY_TIME,
true);
calendar1.addDateListener(listener);
calendar1.setBorder(compoundBorder);
// Set fonts rather than using defaults
calendar1.setTitleFont(new Font("Serif", Font.BOLD|Font.ITALIC, 24));
calendar1.setDayOfWeekFont(new Font("SansSerif", Font.ITALIC, 12));
calendar1.setDayFont(new Font("SansSerif", Font.BOLD, 16));
calendar1.setTimeFont(new Font("DialogInput", Font.PLAIN, 10));
calendar1.setTodayFont(new Font("Dialog", Font.PLAIN, 14));
// Display date only
JCalendar calendar2 = new JCalendar(JCalendar.DISPLAY_DATE, false);
calendar2.addDateListener(listener);
calendar2.setBorder(compoundBorder);
// Display time only and set the time pattern to use as a duration
// from 00:00 to 23:59
JCalendar calendar3 =
new JCalendar(
Calendar.getInstance(),
Locale.getDefault(),
JCalendar.DISPLAY_TIME,
false,
"HH:mm");
calendar3.addDateListener(listener);
calendar3.setBorder(compoundBorder);
// Display a French calendar
JCalendar calendar4 =
new JCalendar(
Calendar.getInstance(Locale.FRENCH),
Locale.FRENCH,
JCalendar.DISPLAY_DATE | JCalendar.DISPLAY_TIME,
false);
calendar4.addDateListener(listener);
calendar4.setBorder(compoundBorder);
// Add all the calendars to the content pane
JPanel panel1 = new JPanel(new FlowLayout());
panel1.add(calendar1);
contentPane.add(panel1);
JPanel panel2 = new JPanel(new FlowLayout());
panel2.add(calendar2);
contentPane.add(panel2);
JPanel panel3 = new JPanel(new FlowLayout());
panel3.add(calendar3);
contentPane.add(panel3);
JPanel panel4 = new JPanel(new FlowLayout());
panel4.add(calendar4);
contentPane.add(panel4);
// Make the window visible
pack();
setVisible(true);
}
//**********************************************************************
// Inner Classes
//**********************************************************************
private class MyDateListener
implements DateListener
{
public void
dateChanged(
DateEvent e)
{
Calendar c = e.getSelectedDate();
if (c != null) {
System.out.println(c.getTime());
}
else {
System.out.println("No time selected.");
}
}
}
//**********************************************************************
// End Inner Classes
//**********************************************************************
}