import javax.swing.*;
import javax.swing.text.DateFormatter;
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
public class Calendar extends JFrame implements ActionListener {
private JButton Next, Previous;
private JLabel CurrDate,Time;
private JLabel Days[];
private JButton [] dayButtons;
private JPanel P1,P2,P3,P4,P5;
private int year , month , day ,ch;
String S1;
GregorianCalendar GC=new GregorianCalendar();;
int DayOfWeek=GC.get(GC.DAY_OF_WEEK);
Color c = new Color(169,97,182);
Color c2 = new Color(241,233,241);
String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
Calendar()
{
super( "Calendar" );
year = GC.get(GC.YEAR);
month = GC.get(GC.MONTH);
day = GC.get(GC.DATE);
Previous = new JButton ("<<");
Previous.setBackground(Color.LIGHT_GRAY);
Previous.addActionListener(this);
Next = new JButton (">>");
Next.setBackground(Color.LIGHT_GRAY);
Next.addActionListener(this);
CurrDate = new JLabel (" "+ months[month]+" "+year+" ");
CurrDate.setForeground(Color.WHITE);
CurrDate.setFont(new Font ("Serif",Font.ITALIC+Font.BOLD,15));
CurrDate.setAlignmentX(CENTER_ALIGNMENT);
Days = new JLabel[7];
Days[0] = new JLabel ("Sun ");
Days[1] = new JLabel ("Mon ");
Days[2] = new JLabel ("Tue ");
Days[3] = new JLabel ("Wed ");
Days[4] = new JLabel ("Thu ");
Days[5] = new JLabel ("Fri ");
Days[6] = new JLabel ("Sat ");
for(JLabel l : Days)
{
l. setForeground(Color.WHITE);
l.setAlignmentX(LEFT_ALIGNMENT);
}
Time = new JLabel ();
Time.setText(GC.get(GC.HOUR)+":"+GC.get(GC.MINUTE)+":"+GC.get(GC.SECOND));
Time.setForeground(Color.WHITE);
if( month ==0 || month ==2 || month == 4 || month ==6 || month==7 || month ==9 || month ==11)
{
ch = 1;
}
else
{
ch = 2;
}
P1 = new JPanel();
P2 = new JPanel();
P3 = new JPanel();
P4 = new JPanel();
P5 = new JPanel();
P5.setLayout(new BorderLayout());
P1.add(Previous);
P1.add(CurrDate);
DrawCalendar(DayOfWeek,year,month);
P1.add(Next);
P2.add(Days[0]);
P2.add(Days[1]);
P2.add(Days[2]);
P2.add(Days[3]);
P2.add(Days[4]);
P2.add(Days[5]);
P2.add(Days[6]);
P4.add(Time);
P1.setBackground(c);
P2.setBackground(c);
P4.setBackground(c);
P5.add (P1, BorderLayout.NORTH);
P5.add (P2, BorderLayout.CENTER);
add (P5,BorderLayout.NORTH);
add (P3, BorderLayout.CENTER);
add (P4, BorderLayout.SOUTH);
}
private void DrawCalendar(int DayOfWeek, int year, int month) {
P3.setLayout( new GridLayout(7,7,3,3));
dayButtons = new JButton [49];
if(DayOfWeek == 1 && ch ==1)
{
for ( int i = 0; i < 31; i++ )
{ dayButtons[ i ] = new JButton( i+1 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 31; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 2 && ch ==1)
{
for ( int i = 0; i < 1; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i = 1; i < 32; i++ )
{ dayButtons[ i ] = new JButton( i +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 32; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 3 && ch ==1)
{
for ( int i = 0; i < 2; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =2; i < 33; i++ )
{ dayButtons[ i ] = new JButton( i-1 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 33; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 4 && ch ==1)
{
for ( int i = 0; i < 3; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =3; i < 34; i++ )
{ dayButtons[ i ] = new JButton( i-2 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 34; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 5 && ch ==1)
{
for ( int i = 0; i < 4; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =4; i < 35; i++ )
{ dayButtons[ i ] = new JButton( i-3 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 35; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 6 && ch ==1)
{
for ( int i = 0; i < 5; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =5; i < 36; i++ )
{ dayButtons[ i ] = new JButton( i-4 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 36; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 7 && ch ==1)
{
for ( int i = 0; i < 6; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =6; i < 37; i++ )
{ dayButtons[ i ] = new JButton( i-5 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 37; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 1 && ch ==2)
{
for ( int i = 0; i < 30; i++ )
{ dayButtons[ i ] = new JButton( i+1+"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 30; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 2 && ch ==2)
{
for ( int i = 0; i < 1; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =1; i < 31; i++ )
{ dayButtons[ i ] = new JButton( i +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 31; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 3 && ch ==2)
{
for ( int i = 0; i < 2; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =2; i < 32; i++ )
{ dayButtons[ i ] = new JButton( i-1 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 32; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 4 && ch ==2)
{
for ( int i = 0; i < 3; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =3; i < 33; i++ )
{ dayButtons[ i ] = new JButton( i-2 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 33; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 5 && ch ==2)
{
for ( int i = 0; i < 4; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =4; i < 35; i++ )
{ dayButtons[ i ] = new JButton( i-3 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 35; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 6 && ch ==2)
{
for ( int i = 0; i < 5; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =5; i < 36; i++ )
{ dayButtons[ i ] = new JButton( i-4 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 36; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
if(DayOfWeek == 7 && ch ==2)
{
for ( int i = 0; i < 6; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
for ( int i =6; i < 37; i++ )
{ dayButtons[ i ] = new JButton( i-5 +"" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(c2);
}
for ( int i = 37; i < 49; i++ )
{ dayButtons[ i ] = new JButton( "" );
P3.add( dayButtons[ i ] );
dayButtons[i].addActionListener(this);
dayButtons[i].setBackground(Color.LIGHT_GRAY);
}
}
for( int i = DayOfWeek-1; i<49 ; i++)
{
if( i- DayOfWeek+2 == GC.get(GC.DATE))
{
dayButtons[i].setBackground(c);
}
}
}
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource()== Previous)
{ clear();
if(month !=0)
{
month --;
if( month ==0 || month ==2 || month == 4 || month ==6 || month==7 || month ==9 || month ==11)
{
ch=1;
}
else
{
ch=2;
}
}
else
{
year--;
month=11;
ch=1;
}
CurrDate.setText (" "+ months[month]+" "+year+" ");
GregorianCalendar cal = new GregorianCalendar(year, month, 1);
int d=cal.get(cal.DAY_OF_WEEK);
DayOfWeek=d;
DrawCalendar(d,year,month);
P4.add(Time);
P1.setBackground(c);
P2.setBackground(c);
P4.setBackground(c);
}
if(arg0.getSource()== Next)
{
clear();
if(month !=11)
{
month ++;
if( month ==0 || month ==2 || month == 4 || month ==6 || month==7 || month ==9 || month ==11)
{
ch=1;
}
else
{
ch=2;
}
}
else
{
year++;
month=0;
ch=1;
}
CurrDate.setText (" "+ months[month]+" "+year+" ");
GregorianCalendar cal = new GregorianCalendar(year, month, 1);
int d=cal.get(cal.DAY_OF_WEEK);
DayOfWeek=d;
DrawCalendar(d,year,month);
P4.add(Time);
P1.setBackground(c);
P2.setBackground(c);
P4.setBackground(c);
}
for( int i=DayOfWeek-1; i<30+DayOfWeek; i++)
{
if(arg0.getSource()==dayButtons[i])
{
S1 = JOptionPane.showInputDialog(this,"Insert your Note");
}
}
}
private void clear() {
for(int i =0; i<6;i++)
{
for(int j=0;j<7;j++)
{
P3.removeAll();
}
}
}
public static void main(String [] args){
Calendar C = new Calendar();
C.setSize(400,315);
C.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
C.setVisible(true);
C.setResizable(false);
}
}
大家好,,, :)
这个日历的问题是每个月的天数!我写的代码不能正常工作!我不知道问题出在哪里如果任何人都可以帮助,,thnx反正!