📄 calenderp.java
字号:
import java.awt.*;import java.awt.event.*;//import java.applet.*;import javax.swing.*;import java.text.NumberFormat;import java.util.Calendar;public class Calenderp extends JPanel implements ActionListener { ImageIcon kabba1 = new ImageIcon("images/kabba2.gif"); JLabel kabba = new JLabel(kabba1); ImageIcon madina1 = new ImageIcon("images/madina1.gif"); JLabel madina = new JLabel(madina1); // JButton[] da= new JButton[31]; JLabel[] dayy= new JLabel[7]; JButton[] week= new JButton[7]; JLabel jLmonth = new JLabel(); JLabel jLyear = new JLabel(); Calendar cal=Calendar.getInstance(); JComboBox comboyr = new JComboBox();JComboBox combomon = new JComboBox();int a,b,c,d,e,maxx=420,f,x=0,y,last,foundx,foundy;int date=0,year=0,month=0,yy=-40; int lastday[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int leaplastday[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; JButton buttoday= new JButton(); JButton butnext= new JButton(); JButton butprev= new JButton(); JButton butgo= new JButton(); String[] monthc = { "JANUARY","FEBRUARY" ,"MARCH","APRIL", "MAY","JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER","NOVEMBER","DECEMBER"}; //JPanel panel=new JPanel(); //////////////////////////////////////////////////public Calenderp() { setLayout(null); setBackground(new java.awt.Color (180,180, 150)); date=cal.get(Calendar.DATE); year=cal.get(Calendar.YEAR); month=cal.get(Calendar.MONTH)+1; kabba.setBounds(630,140,150,230); add(kabba); madina.setBounds(7,140,150,230); add(madina);//combomon.addItem(String.valueOf(monthc[month-1])); for(int mm=0;mm<=11;mm++) combomon.addItem(String.valueOf(monthc[mm])); combomon.setSelectedIndex(month-1); combomon.setBounds(280,120+yy,100, 25); combomon.setToolTipText("Set Month you want to see"); combomon.setBackground(new java.awt.Color (250,250,250)); combomon.setForeground(java.awt.Color.black);//combomon.addActionListener(this);add(combomon,BorderLayout.CENTER); //comboyr.addItem(String.valueOf(year)); for(int yy=2000;yy<2050;yy++) comboyr.addItem(String.valueOf(yy)); comboyr.setSelectedIndex(year-2000); comboyr.setBounds(200,120+yy,60, 25); comboyr.setToolTipText("Set Year you want to see"); comboyr.setBackground(new java.awt.Color (250,250,250)); comboyr.setForeground(java.awt.Color.black);//comboyr.addActionListener(this);add(comboyr); butgo.setText("Go"); butgo.setBackground(new java.awt.Color (150,150, 150)); butgo.setFont(new java.awt.Font ("Times New Roman",1,15)); butgo.setForeground(java.awt.Color.black); butgo.setBounds(400, 120+yy,70, 25); butgo.setToolTipText("Give ComboBoxes Result"); add(butgo); butgo.addActionListener(this); buttoday.setText("Today"); buttoday.setBackground(new java.awt.Color (150,150, 150)); buttoday.setFont(new java.awt.Font ("Times New Roman",1,15)); buttoday.setForeground(java.awt.Color.black); buttoday.setBounds(490, 120+yy,90, 25); buttoday.setToolTipText("Today Date"); add(buttoday); buttoday.addActionListener(this); butnext.setText("Next >>"); butnext.setBackground(new java.awt.Color (150,150, 150)); butnext.setFont(new java.awt.Font ("Times New Roman",1,15)); butnext.setForeground(java.awt.Color.black); butnext.setToolTipText("Next Month"); butnext.setBounds(490, 445+yy,90, 25); add(butnext); butnext.addActionListener(this); butprev.setText("<< Prev"); butprev.setBackground(new java.awt.Color (150,150, 150)); butprev.setFont(new java.awt.Font ("Times New Roman",1,15)); butprev.setForeground(java.awt.Color.black); butprev.setToolTipText("Previous Month"); butprev.setBounds(200, 445+yy,90, 25); add(butprev); butprev.addActionListener(this);display(year,month); }public void selectcombo(){ int m=1; String yr= (String)comboyr.getSelectedItem(); String mont= (String)combomon.getSelectedItem(); //"JANUARY","FEBRUARY" ,"MARCH","APRIL", "MAY","JUNE", // "JULY", "AUGUST", "SEPTEMBER", "OCTOBER","NOVEMBER","DECEMBER"}; //setVisible(false); if(mont=="JANUARY") m=1;if(mont=="FEBRUARY") m=2; if(mont=="MARCH") m=3; if(mont=="APRIL") m=4; if(mont=="MAY") m=5; if(mont=="JUNE") m=6; if(mont=="JULY") m=7; if(mont=="AUGUST") m=8; if(mont=="SEPTEMBER") m=9; if(mont=="OCTOBER") m=10; if(mont=="NOVEMBER") m=11; if(mont=="DECEMBER") m=12; year=Integer.parseInt(yr); month=m; display(year,month);} public void actionPerformed(ActionEvent e) { // selectcombo(); // JButton button=(JButton)e.getSource(); if(button.equals(buttoday)) { month=cal.get(Calendar.MONTH)+1; year=cal.get(Calendar.YEAR); // combomon.addItem(String.valueOf(monthc[month-1])); combomon.setSelectedIndex(month-1); comboyr.setSelectedIndex(year-2000); display(year,month); } if(button.equals(butgo)) { int m=1; String yr= (String)comboyr.getSelectedItem(); String mont= (String)combomon.getSelectedItem(); //"JANUARY","FEBRUARY" ,"MARCH","APRIL", "MAY","JUNE", // "JULY", "AUGUST", "SEPTEMBER", "OCTOBER","NOVEMBER","DECEMBER"}; //setVisible(false); if(mont=="JANUARY") m=1;if(mont=="FEBRUARY") m=2; if(mont=="MARCH") m=3; if(mont=="APRIL") m=4; if(mont=="MAY") m=5; if(mont=="JUNE") m=6; if(mont=="JULY") m=7; if(mont=="AUGUST") m=8; if(mont=="SEPTEMBER") m=9; if(mont=="OCTOBER") m=10; if(mont=="NOVEMBER") m=11; if(mont=="DECEMBER") m=12; year=Integer.parseInt(yr); month=m; //combomon.addItem(String.valueOf(monthc[month-1])); display(year,month); // selectcombo(); } else if(button.equals(butnext)) {month++; if(month>=13) { month=1; year++; } //year++; if(year>2049) year=2000; combomon.setSelectedIndex(month-1); comboyr.setSelectedIndex(year-2000); display(year,month); // repaint(); } else if(button.equals(butprev)) { month--; //year--; if(month<=0) { month=12; year--; } if(year<=1999) year=2049; combomon.setSelectedIndex(month-1); comboyr.setSelectedIndex(year-2000); display(year,month); } //display(); //new Calenderp(Integer.parseInt(yr),m,6); //cal.set(Calendar.YEAR,(Integer.parseInt(yr))); // this.dispose(); // new Calenderp(); // display(Integer.parseInt(yr),m,cal.get(Calendar.DATE)); } public static void main(String[] args) { JFrame frame = new JFrame("Calender"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.getContentPane().add(new Calenderp(), BorderLayout.CENTER); frame. setSize(800,500); frame.setVisible(true); } public void display(int year,int month) {//selectcombo(); setVisible(true); // date=date1; int firstday=7,leap=0,diff,i,m,result=0,found=0; diff=year-2000; for(i=2000;i<year;i++) if(i%4==0) leap++; firstday+=diff; while(firstday>8) firstday-=7; firstday+=leap; while(firstday>7) firstday-=7; if(month>1) { if(year%4==0) { for(i=1;i<month;i++) result=result+leaplastday[i]; firstday+=result; } else { for(i=1;i<month;i++) result=result+lastday[i]; firstday+=result; } } while(firstday>7) firstday-=7; //return firstday; switch(firstday) { case 7: x=60; break; case 6: x=0; break; case 5: x=360; break; case 4: x=300; break; case 3: x=240; break; case 2: x=180; break; case 1: x=120; break; } if(year%4==0) last=leaplastday[month]; else last=lastday[month]; y=40; String[] days = {"Fri","Sat","Sun","Mon","Tue","Wed","Thu"}; int w,xx=0; for( w=0;w<7;w++) { // days[i] = new JLabel(Integer.toString(i+1)); week[w] = new JButton(days[w]); week[w].setBackground(new java.awt.Color (150,150, 200)); week[w].setFont(new java.awt.Font ("Arial",1,12)); //da[i].setText("1"); week[w].setBounds(180+xx,180+y+yy,60, 25); //days[i].setAlignment(JLabel.CENTER); add(week[w]); xx+=60; } repaint(); } public void paintComponent(Graphics g) { display(year,month); super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; //g.drawString("9", 95,250); // int a,b,c,d,e,maxx=400,f,x=0 g.setColor(new java.awt.Color (20,50,50)); g.fillRoundRect(160,100+yy,460,390,15,15); g.setColor(new java.awt.Color (0,0,0)); g.fillRoundRect(170,110+yy,440,370,15,15); g.setColor(new java.awt.Color (20,50,50));//line g.fillRoundRect(160,155+yy,460,10,15,15); g.setColor(new java.awt.Color (20,50,50));//line g.fillRoundRect(160,425+yy,460,10,15,15); g.setColor(new java.awt.Color (200,200,200)); g.fillRoundRect(180,240+yy,420,170,15,15); g.setColor(new java.awt.Color (0,0,0)); g.fillRoundRect(12,180+yy,140,230,15,15); g.setColor(new java.awt.Color (0,0,0)); g.fillRoundRect(630,170+yy,150,250,15,15); g.setColor(new java.awt.Color (180,180,150)); String[] mon = { "JANUARY","FEBRUARY" ,"MARCH","APRIL", "MAY","JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER","NOVEMBER","DECEMBER"}; String months=mon[month-1]; g.setFont(new java.awt.Font ("Arial Black",1,30)); g.drawString(months,210,160+y+yy); g.setFont(new java.awt.Font ("Arial Black",1,30)); g.drawString(String.valueOf(year),490,160+y+yy); g.setColor(new java.awt.Color (0,0,240)); NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumIntegerDigits(2); for( a=0;x<maxx;a++) { g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(a+1)),205+x,240+y+yy); if(date==a+1) { g.setColor(new java.awt.Color (0,0,0)); g.fillOval(200+x,225+y+yy,35,20); g.setColor(new java.awt.Color (250,250,250)); g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(a+1)),205+x,240+y+yy); g.setColor(new java.awt.Color (0,0,250)); } x+=60; } NumberFormat nf2 = NumberFormat.getInstance(); nf2.setMinimumIntegerDigits(2); x=0; for( b=a;x<maxx;b++) { g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf2.format(b+1)),205+x,260+y+yy); if(date==b+1) { g.setColor(new java.awt.Color (0,0,0)); g.fillOval(202+x,245+y+yy,30,22); g.setColor(new java.awt.Color (250,250,250)); g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(b+1)),205+x,260+y+yy); g.setColor(new java.awt.Color (0,0,250)); } x+=60; } x=0; for( c=b;x<maxx;c++) { g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(Integer.toString(c+1),205+x,280+y+yy); if(date==c+1) { g.setColor(new java.awt.Color (0,0,0)); g.fillOval(202+x,265+y+yy,30,22); g.setColor(new java.awt.Color (250,250,250)); g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(c+1)),205+x,280+y+yy); g.setColor(new java.awt.Color (0,0,250));} x+=60; } x=0; for( d=c;x<maxx;d++) { g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(Integer.toString(d+1),205+x,300+y+yy); if(date==d+1) { g.setColor(new java.awt.Color (0,0,0)); g.fillOval(202+x,285+y+yy,30,22); g.setColor(new java.awt.Color (250,250,250)); g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(d+1)),205+x,300+y+yy); g.setColor(new java.awt.Color (0,0,250)); } x+=60; } x=0; for( e=d;x<maxx&e<last;e++) { g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(Integer.toString(e+1),205+x,320+y+yy); if(date==e+1) { g.setColor(new java.awt.Color (0,0,0)); g.fillOval(202+x,305+y+yy,30,22); g.setColor(new java.awt.Color (250,250,250)); g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(e+1)),205+x,320+y+yy); g.setColor(new java.awt.Color (0,0,250)); } x+=60; } x=0; // int last; /*if(year%4==0) last=leaplastday[year]; else*/ for( f=e;x<maxx&f<last;f++) { g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(Integer.toString(f+1),205+x,350+y+yy); if(date==f+1) { g.setColor(new java.awt.Color (0,0,0)); g.fillOval(202+x,335+y+yy,30,22); g.setColor(new java.awt.Color (250,250,250)); g.setFont(new java.awt.Font ("Arial Black",1,15)); g.drawString(String.valueOf(nf.format(e+1)),205+x,350+y+yy); g.setColor(new java.awt.Color (0,0,250)); } x+=60; } x=0; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -