⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kalendar.txt

📁 <apple>很好用的日历程序
💻 TXT
字号:
import java.awt.*; 
import javax.swing.*; 
import java.util.Calendar; 
import java.util.Date; 
import java.beans.*; 
import javax.swing.event.*; 
import java.awt.event.*; 
import javax.swing.border.*; 
public class Kalendar extends JDialog { 
int fnR=212; 
int fnG=208; 
int fnB=200; 
int fontSize=20; 
Date retDate=new Date(); 
String strmaxDate=""; 
String strminDate=""; 
Date slin=new Date(); 
int[] days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

JPanel panelCenter = new JPanel(); 
BorderLayout borderLayoutCenter = new BorderLayout(); 
JPanel jPanelBody = new JPanel(); 
JPanel jPanelNorth = new JPanel(); 

JBAPanel[] JBAPanel ={ 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(2,fnR,fnG,fnB), 
new JBAPanel(1,fnR,fnG,fnB),//10--------7 
new JBAPanel(1,fnR,fnG,fnB),//11--------8 
new JBAPanel(1,fnR,fnG,fnB),//12--------9 
new JBAPanel(1,fnR,fnG,fnB),//13--------10 
new JBAPanel(1,fnR,fnG,fnB),//14--------11 
new JBAPanel(1,fnR,fnG,fnB),//15--------12 
new JBAPanel(1,fnR,fnG,fnB),//16--------13 
new JBAPanel(1,fnR,fnG,fnB),//20--------14 
new JBAPanel(1,fnR,fnG,fnB),//21--------15 
new JBAPanel(1,fnR,fnG,fnB),//22--------16 
new JBAPanel(1,fnR,fnG,fnB),//23--------17 
new JBAPanel(1,fnR,fnG,fnB),//24--------18 
new JBAPanel(1,fnR,fnG,fnB),//25--------19 
new JBAPanel(1,fnR,fnG,fnB),//26--------20 
new JBAPanel(1,fnR,fnG,fnB),//30--------21 
new JBAPanel(1,fnR,fnG,fnB),//31--------22 
new JBAPanel(1,fnR,fnG,fnB),//32--------23 
new JBAPanel(1,fnR,fnG,fnB),//33--------24 
new JBAPanel(1,fnR,fnG,fnB),//34--------25 
new JBAPanel(1,fnR,fnG,fnB),//35--------26 
new JBAPanel(1,fnR,fnG,fnB),//36--------27 
new JBAPanel(1,fnR,fnG,fnB),//40--------28 
new JBAPanel(1,fnR,fnG,fnB),//41--------29 
new JBAPanel(1,fnR,fnG,fnB),//42--------30 
new JBAPanel(1,fnR,fnG,fnB),//43--------31 
new JBAPanel(1,fnR,fnG,fnB),//44--------32 
new JBAPanel(1,fnR,fnG,fnB),//45--------33 
new JBAPanel(1,fnR,fnG,fnB),//46--------34 
new JBAPanel(1,fnR,fnG,fnB),//50--------35 
new JBAPanel(1,fnR,fnG,fnB),//51--------36 
new JBAPanel(1,fnR,fnG,fnB),//52--------37 
new JBAPanel(1,fnR,fnG,fnB),//53--------38 
new JBAPanel(1,fnR,fnG,fnB),//54--------39 
new JBAPanel(1,fnR,fnG,fnB),//55--------40 
new JBAPanel(1,fnR,fnG,fnB),//56--------41 
new JBAPanel(1,fnR,fnG,fnB),//69--------42 
new JBAPanel(1,fnR,fnG,fnB),//61--------43 
new JBAPanel(1,fnR,fnG,fnB),//62--------44 
new JBAPanel(1,fnR,fnG,fnB),//63--------45 
new JBAPanel(1,fnR,fnG,fnB),//64--------46 
new JBAPanel(1,fnR,fnG,fnB),//65--------47 
new JBAPanel(1,fnR,fnG,fnB),//66--------48 
}; 

JComboBox jComboBoxMonth; 
JSpinner jSpinner = new JSpinner(); 
JLabel jLabelMonth = new JLabel(); 
JLabel jLabelYear = new JLabel(); 
TitledBorder titledBorder1; 
JPanel jPanelHead = new JPanel(); 
JPanel jPanelBottom = new JPanel(); 
BorderLayout borderLayoutBody = new BorderLayout(); 
public Kalendar(Frame frame, String title, boolean modal) { 
super(frame, title, modal); 
try { 
jbInit(); 
pack(); 
} 
catch(Exception ex) { 
ex.printStackTrace(); 
} 
} 

public Kalendar() { 
this(null, "", false); 
} 
private void jbInit() throws Exception { 


titledBorder1 = new TitledBorder(""); 
panelCenter.setLayout(borderLayoutCenter); 
jPanelNorth.setBackground(Color.gray); 
jPanelNorth.setBorder(BorderFactory.createRaisedBevelBorder()); 

JBAPanel[0].SetJBAPLabel(" 日"); 
JBAPanel[1].SetJBAPLabel(" 一"); 
JBAPanel[2].SetJBAPLabel(" 二"); 
JBAPanel[3].SetJBAPLabel(" 三"); 
JBAPanel[4].SetJBAPLabel(" 四"); 
JBAPanel[5].SetJBAPLabel(" 五"); 
JBAPanel[6].SetJBAPLabel(" 六"); 
jLabelMonth.setFont(new java.awt.Font("Dialog", 1, fontSize)); 
jLabelMonth.setForeground(Color.white); 
jLabelMonth.setText("选择月"); 
jLabelYear.setFont(new java.awt.Font("Dialog", 1, fontSize)); 
jLabelYear.setForeground(Color.white); 
jLabelYear.setText("选择年"); 
Calendar calendar=Calendar.getInstance(); 
jComboBoxMonth = new JComboBox(); 
for (int i = 1; i <= 12; i++) { 
jComboBoxMonth.addItem(new Integer(i)); 
} 
jComboBoxMonth.setSelectedIndex(calendar.get(Calendar.MONTH)); 
jComboBoxMonth.setBackground(Color.white); 
jComboBoxMonth.setFont(new java.awt.Font("DialogInput", 1, fontSize+6)); 
jComboBoxMonth.setMinimumSize(new Dimension(100, 30)); 
jComboBoxMonth.setPreferredSize(new Dimension(100, 26)); 
jComboBoxMonth.addItemListener(new Clock_jComboBoxMonth_itemAdapter(this)); 
jSpinner.setValue(new Integer(calendar.get(Calendar.YEAR))); 
leapYear(calendar.get(Calendar.YEAR)); 
jSpinner.setEditor(new JSpinner.NumberEditor(jSpinner, "0000")); 
jSpinner.setFont(new java.awt.Font("DialogInput", 1, fontSize+6)); 
jSpinner.setPreferredSize(new Dimension(100, 30)); 
jSpinner.addChangeListener(new Clock_jSpinner_changeAdapter(this)); 


jPanelBottom.setBackground(new Color(fnR,fnG,fnB)); 
jPanelBody.setLayout(borderLayoutBody); 
jPanelHead.setBackground(new Color(255,164,190)); 
jPanelHead.setBorder(titledBorder1); 
this.addMouseListener(new Clock_this_mouseAdapter(this)); 

this.setResizable(false); 
jPanelBody.add(jPanelBottom, BorderLayout.CENTER); 
getContentPane().add(panelCenter); 
panelCenter.add(jPanelBody, BorderLayout.CENTER); 
jPanelBody.add(jPanelHead, BorderLayout.NORTH); 

for(int i=0;i<JBAPanel.length;i++){ 
if(i<7){ 
JBAPanel[i].setBorder(null); 
JBAPanel[i].setBackground(jPanelHead.getBackground()); 
jPanelHead.add(JBAPanel[i], null); 
}else{ 
JBAPanel[i].jButton.addFocusListener(new Clock_jJBAPaneljButton_focusAdapter(this,i)); 
jPanelBottom.add(JBAPanel[i], null); 
} 
} 

this.getContentPane().add(jPanelNorth, BorderLayout.NORTH); 
jPanelNorth.add(jLabelMonth, null); 
jPanelNorth.add(jComboBoxMonth, null); 
jPanelNorth.add(jLabelYear, null); 
jPanelNorth.add(jSpinner, null); 
SetShowDate(); 
} 
void SetShowDate(){ 
int yy=0; 
int mm=0; 
int dd=0; 
int zz=0; 
Integer yyI=new Integer(jSpinner.getValue().toString()); 
yy=yyI.intValue(); 
Integer mmI=new Integer(jComboBoxMonth.getSelectedItem().toString()); 
mm=mmI.intValue(); 
dd=1; 
dd=getWeekday(yy,mm,dd); 

SetJBLabel(dd,days_in_month[jComboBoxMonth.getSelectedIndex()]); 
} 
void SetJBLabel(int min,int max){ 
int num=1; 
String jpname="hjp"; 
for(int i=7;i<JBAPanel.length;i++){ 
if(i<(min+6) ||i>=(max+6+min)){ 

JBAPanel[i].SetJBAPLabel(""); 
JBAPanel[i].setBorder(null); 
JBAPanel[i].jButton.setVisible(false); 
}else{ 
JBAPanel[i].SetJBAPLabel(new Integer(num).toString()); 
JBAPanel[i].setBorder(BorderFactory.createRaisedBevelBorder()); 
JBAPanel[i].jButton.setVisible(true); 
num++; 
} 
} 

} 

void leapYear(int year) { 
if ((year%4 == 0) && (year%100!=0) || (year%400 == 0)) { 
days_in_month[1]=29; 
} else { 
days_in_month[1]=28; 
} 
} 

int getWeekday(int yy,int mm){ 

slin=SetCurDate(yy,mm-1,1); 
int week=0; 
week=Getweek(slin); 
return week; 
} 

int Getweek(Date dat){ 
return dat.getDay(); 
} 
Date SetCurDate(int yy,int mm,int dd){ 
slin.setYear(yy); 
slin.setMonth(mm); 
slin.setDate(dd); 

return slin; 
} 

int getWeekday(int yy,int mm,int dd){ 
slin=SetCurDate(yy,mm-1,dd); 
int week=0; 
week=Getweek(slin); 
return week; 

} 

void jSpinner_stateChanged(ChangeEvent e) { 
Integer i=new Integer(jSpinner.getValue().toString()); 
int ii=i.intValue(); 
Calendar dd=Calendar.getInstance(); 
if(ii<0) jSpinner.setValue(new Integer(dd.get(Calendar.YEAR))); 


if(ii>9999) jSpinner.setValue(new Integer(dd.get(Calendar.YEAR))); 

i=new Integer(jSpinner.getValue().toString()); 
ii=i.intValue(); 
leapYear(ii); 
SetShowDate(); 
} 


void jComboBoxMonth_itemStateChanged(ItemEvent e) { 
SetShowDate(); 
} 

void this_mouseClicked(MouseEvent e) { 
for(int i=0;i<JBAPanel.length;i++) 
if(JBAPanel[i].GetDisflag()){ 
this.dispose(); 
} 

} 

void jJBAPaneljButton_focusGained(FocusEvent e,int numi) { 

int yy=2000; 
int mm=3; 
int dd=1; 
Integer yyI=new Integer(jSpinner.getValue().toString()); 
yy=yyI.intValue(); 
Integer mmI=new Integer(jComboBoxMonth.getSelectedItem().toString()); 
mm=mmI.intValue(); 
Integer ddI=new Integer(JBAPanel[numi].GetJBAPLabel()); 
dd=ddI.intValue(); 
strminDate=yyI.toString()+"-"+mmI.toString()+"-"+ddI.toString(); 
strmaxDate=yyI.toString()+"-"; 

if(mm<10) strmaxDate=strmaxDate+"0"+mmI.toString()+"-"; 
else strmaxDate=strmaxDate+mmI.toString()+"-"; 
if(dd<10) strmaxDate=strmaxDate+"0"+ddI.toString(); 
else strmaxDate=strmaxDate+ddI.toString(); 

retDate=SetCurDate(yy,mm,dd);; 
System.out.println(yy+"-"+mm+"-"+dd); 
this.dispose(); 
} 
public Date GetRetDate(){ 
return retDate; 
} 
public String GetStrminDate(){ 
return strminDate; 
} 
public String GetStrmaxDate(){ 
return strmaxDate; 
} 
public static void main(String[] args) { 

CalendarComboBox dialog=new CalendarComboBox(); 
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
dialog.setSize(500,400); 
Dimension frameSize = dialog.getSize(); 
if (frameSize.height > screenSize.height) { 
frameSize.height = screenSize.height; 
} 
if (frameSize.width > screenSize.width) { 
frameSize.width = screenSize.width; 
} 
dialog.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); 
dialog.setVisible(true); 

} 

} 
class Clock_jSpinner_changeAdapter implements javax.swing.event.ChangeListener { 
Kalendar adaptee; 

Clock_jSpinner_changeAdapter(Kalendar adaptee) { 
this.adaptee = adaptee; 
} 
public void stateChanged(ChangeEvent e) { 
adaptee.jSpinner_stateChanged(e); 
} 
} 



class Clock_jComboBoxMonth_itemAdapter implements java.awt.event.ItemListener { 
Kalendar adaptee; 

Clock_jComboBoxMonth_itemAdapter(Kalendar adaptee) { 
this.adaptee = adaptee; 
} 
public void itemStateChanged(ItemEvent e) { 
adaptee.jComboBoxMonth_itemStateChanged(e); 
} 
} 

class Clock_this_mouseAdapter extends java.awt.event.MouseAdapter { 
Kalendar adaptee; 

Clock_this_mouseAdapter(Kalendar adaptee) { 
this.adaptee = adaptee; 
} 
public void mouseClicked(MouseEvent e) { 
adaptee.this_mouseClicked(e); 
} 
} 

class Clock_jJBAPaneljButton_focusAdapter extends java.awt.event.FocusAdapter { 
Kalendar adaptee; 
int num=0; 
Clock_jJBAPaneljButton_focusAdapter(Kalendar adaptee,int numi) { 
this.adaptee = adaptee; 
this.num=numi; 
} 
public void focusGained(FocusEvent e) { 
adaptee.jJBAPaneljButton_focusGained(e,num); 
} 
} 

class JBAPanel extends JPanel{ 
int fnR=100; 
int fnG=100; 
int fnB=100; 

int flag=0; 
boolean disflag=false; 
public JButton jButton = new JButton(); 
BorderLayout borderLayout1 = new BorderLayout(); 
JLabel jLabel = new JLabel(); 
public JBAPanel() { 
try { 
jbInit(); 
} 
catch(Exception e) { 
e.printStackTrace(); 
} 
} 
public JBAPanel(int flag,int fnR,int fnG,int fnB) { 
this.flag=flag; 
this.fnR=fnR; 
this.fnG=fnG; 
this.fnB=fnB; 
try { 
jbInit(); 
} 
catch(Exception e) { 
e.printStackTrace(); 
} 
} 

private void jbInit() throws Exception { 
if(flag==1 || flag==2){ 
this.setMaximumSize(new Dimension(60, 35)); 
this.setMinimumSize(new Dimension(60, 35)); 
this.setPreferredSize(new Dimension(60, 35)); 
this.setBackground(new Color(fnR,fnG,fnB)); 
this.setBorder(BorderFactory.createRaisedBevelBorder()); 
this.setDebugGraphicsOptions(0); 
this.setLayout(borderLayout1); 
if(flag==1){ 
jButton.setFont(new java.awt.Font("DialogInput", 1, 15)); 

jButton.setHorizontalAlignment(SwingConstants.CENTER); 
jButton.addActionListener(new JBAPanel_jButton_actionAdapter(this)); 
jButton.addMouseListener(new JBAPanel_jButton_mouseAdapter(this)); 
this.add(jButton, BorderLayout.CENTER); 
} 
if(flag==2){ 
jLabel.setFont(new java.awt.Font("DialogInput", 1,25)); 
this.add(jLabel, BorderLayout.CENTER); 
} 
} 
this.addMouseListener(new JBAPanel_this_mouseAdapter(this)); 
} 
public void SetJBAPLabel(String str){ 
if(flag==2){ 
jLabel.setText(str); 
} 
else 
jButton.setText(str); 
} 
public String GetJBAPLabel(){ 
if(flag==2){ 
return jLabel.getText(); 
} 
else 
return jButton.getText(); 
} 
public boolean GetDisflag(){ 
return disflag; 
} 

void this_mouseEntered(MouseEvent e) { 
if(flag==1){ 
if (this.getBorder() == null){ 
this.setBackground(new Color(fnR, fnG, fnB)); 
jButton.setBackground(new Color(fnR,fnG,fnB)); 
} 
else 
this.setBackground(new Color(104,90, 190)); 
jButton.setBackground(new Color(104,90, 190)); 

} 

} 

void this_mouseExited(MouseEvent e) { 
if(flag==1){ 
this.setBackground(new Color(fnR,fnG, fnB)); 
jButton.setBackground(new Color(fnR, fnG,fnB)); 
} 

} 

void this_mouseClicked(MouseEvent e) { 
disflag=true; 
} 

void jButton_mouseClicked(MouseEvent e) { 
disflag=true; 
} 

void jButton_actionPerformed(ActionEvent e) { 
disflag=true; 
} 

void jButton_mouseEntered(MouseEvent e) { 
if(flag==1){ 
if (this.getBorder() == null){ 
this.setBackground(new Color(fnR, fnG, fnB)); 
jButton.setBackground(new Color(fnR, fnG,fnB)); 
} 
else 
this.setBackground(new Color(104,90, 190)); 
jButton.setBackground(new Color(104,90, 190)); 

} 

} 

void jButton_mouseExited(MouseEvent e) { 
if(flag==1){ 
this.setBackground(new Color(fnR,fnG, fnB)); 
jButton.setBackground(new Color(fnR, fnG,fnB)); 
} 

} 


} 

class JBAPanel_this_mouseAdapter extends java.awt.event.MouseAdapter { 
JBAPanel adaptee; 

JBAPanel_this_mouseAdapter(JBAPanel adaptee) { 
this.adaptee = adaptee; 
} 
public void mouseEntered(MouseEvent e) { 
adaptee.this_mouseEntered(e); 
} 
public void mouseExited(MouseEvent e) { 
adaptee.this_mouseExited(e); 
} 
public void mouseClicked(MouseEvent e) { 
adaptee.this_mouseClicked(e); 
} 
} 

class JBAPanel_jButton_mouseAdapter extends java.awt.event.MouseAdapter { 
JBAPanel adaptee; 

JBAPanel_jButton_mouseAdapter(JBAPanel adaptee) { 
this.adaptee = adaptee; 
} 
public void mouseClicked(MouseEvent e) { 
adaptee.jButton_mouseClicked(e); 
} 
public void mouseEntered(MouseEvent e) { 
adaptee.jButton_mouseEntered(e); 
} 
public void mouseExited(MouseEvent e) { 
adaptee.jButton_mouseExited(e); 
} 
} 

class JBAPanel_jButton_actionAdapter implements java.awt.event.ActionListener { 
JBAPanel adaptee; 

JBAPanel_jButton_actionAdapter(JBAPanel adaptee) { 
this.adaptee = adaptee; 
} 
public void actionPerformed(ActionEvent e) { 
adaptee.jButton_actionPerformed(e); 
} 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -