package com.lixiyu.frame;
import java.io.*;//引入相關物件
import java.util.*;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.plaf.basic.BasicButtonUI;
import com.lixiyu.util.BackgroundPanel;
import com.lixiyu.util.MyMouseListener;
public class TESTnewframe extends javax.swing.JFrame //建立一窗口
{
//创建背景面板。
BackgroundPanel bgp,bgp2;
private JDesktopPane jDesktopPane1;//画布1
private JDesktopPane jDesktopPane2;//画布2
private JButton jButton2;
private JLabel jLabel1;
private JLabel jLabel2;
private JLabel jLabel4;
private JLabel jLabel3;
private JLabel jLabel5;
private JLabel jLabel6;
private JLabel jLabel7;
private JLabel jLabel8;
private JLabel jLabel9;
private JLabel jLabel10;
private JLabel jLabel11;
private JComboBox jComboBox1;
private JTextField jTextField1;
private JButton jButton3;
private JTextArea jTextArea1;
private static int x_size;
private static int y_size;
private JCheckBox[]jCheckBox = new JCheckBox[10] ;
public TESTnewframe()//建立窗口
{
super();
initGUI();//呼叫GUI函数
setResizable(false);
getContentPane().setLayout(null);
bgp=new BackgroundPanel((new ImageIcon("1.jpg")).getImage());
bgp.setBounds(0,0,700,472);
jDesktopPane1.add(bgp);
bgp2=new BackgroundPanel((new ImageIcon("2.jpg")).getImage());
bgp2.setBounds(0,0,396,308);
jDesktopPane2.add(bgp2);
this.setSize(700,472);
this.setLocation(629,472);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}//建立窗口结束
public int[] getdate()//取得系统日期函数
{
int[] date_array = new int[3];
Calendar ca = new GregorianCalendar();
date_array[0] = ca.get(Calendar.YEAR);//年
date_array[1] = ca.get(Calendar.MONTH)+1;//月
date_array[2] = ca.get(Calendar.DAY_OF_MONTH);//日
return date_array;//回传自定日期
}//取得系统日期函数結束
public void new_btn()//重新产生生日期按钮函数
{
jTextArea1.setText("");//清空记事
int year,month;
year = Integer.parseInt(jLabel5.getText().substring(0,4));//设定已选择的年
month = Integer.parseInt(jLabel5.getText().substring(7,9));//设定已选择的月
date_btn_create(year,month);//呼叫产生日期按钮函数
}//重新产生生日期按钮函数结束
private JButton createBtn() {
JButton btn = new JButton(" ");
btn.setUI(new BasicButtonUI());// 恢复基本视觉效果
//btn.setPreferredSize(new Dimension(80, 27));// 设置按钮大小
btn.setContentAreaFilled(false);// 设置按钮透明
btn.setFont(new Font("微软雅黑", Font.PLAIN, 24));// 按钮文本样式
btn.setMargin(new Insets(0, 0, 0, 0));// 按钮内容与边框距离
//btn.setMargin(null);// 按钮内容与边框距离
btn.setBorderPainted(false);// 隐藏边框
btn.addMouseListener(new MyMouseListener());
return btn;
}
public void date_btn_create(int year,int month)//产生生日期按鈕
{
int y=0,x=0,x_add=0,y_add=0,week_add=0,date_acc=0,week_of_day=0;
String syear,smonth,sday,filename;
syear = String.valueOf(year);
smonth = String.valueOf(month);
if (smonth.length() == 1)//若小于10月(一位数)就在前面加0
smonth = "0"+smonth;
jDesktopPane1.remove(jDesktopPane2);//移除桌面2(日期按钮附著,也就是把日期按钮移除)
jDesktopPane2 = new JDesktopPane();//产生一个新的桌面
jDesktopPane1.add(jDesktopPane2);
jDesktopPane2.setBounds(0, 80, 396, 258);//设定大小及位置 这是日历的位置
switch(month)//设定月份天数
{
case 1://大月31天
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
date_acc = 31;
break;
case 4://小月30天
case 6:
case 9:
case 11:
date_acc = 30;
break;
case 2:
if (leap_year(year))
date_acc = 29;
else
date_acc = 28;
}
week_of_day = dow(year,month,1);//呼叫星期函数(取得当月第一天为星期几)
switch(week_of_day)//设定当月1日位置(像素)
{
case 0:
week_add = 0;
break;
case 1:
week_add = 53;
break;
case 2:
week_add = 106;
break;
case 3:
week_add = 159;
break;
case 4:
week_add = 212;
break;
case 5:
week_add = 265;
break;
case 6:
week_add = 318;
break;
}
JButton btn[] = new JButton[date_acc];//建立日期按钮阵列
for (int i=0;i<date_acc;i++)//建立日期按钮循环
{
btn[i] = createBtn();//建立对应日期按钮 //这里是日期按钮
jDesktopPane2.add(btn[i]);//加到桌面2上
btn[i].setText(String.valueOf(i+1));//设定按钮为文字日期
if ((i-week_of_day>0 && (i+week_of_day)%7==0) || ((i+week_of_day)%7==0 && i != 0))
{//设定当月第一天日期按钮位置
x=0;//X轴坐标
x_add=0;//下一个按钮坐标(X轴)加值
y++;//Y轴坐标
y_add+=16;//还行坐标(Y轴)加值
week_add=0;//当月第一日按钮坐标加值
}//下面设定按钮大小及加值(X为起始10+第几個按钮*橫向宽度25+间隔+当月第一天星期几加值)
btn[i].setBounds(16+x*39+x_add+week_add, y*31+y_add, 39, 31);//(Y为第几个按钮*高度20+换行加值)按钮宽为25高为20
btn[i].setFont(new java.awt.Font("Arial",1,19));//设定字体大小及样式
btn[i].setBorder(BorderFactory.createTitledBorder(""));//设定按钮文字不自动调整大小
sday = String.valueOf(i+1);
filename = syear+smonth+sday;//记事文档名称(年+月+日.txt)
File file=new File(filename+".txt");//建立文档
if (file.exists())//有事变成蓝色
btn[i].setForeground(new java.awt.Color(0,0,255));
btn[i].addActionListener(new ActionListener() {//按钮监听函数
public void actionPerformed(ActionEvent evt) {
btnActionPerformed(evt);
}
});
x++;
x_add+=14;//下一个按钮X坐标
}
}
public boolean leap_year(int year)//判断闰年
{
boolean leap_year;//4的倍数,若为100的倍数则必須为4的倍数才是闰年
if (year%4 == 0)
{
if (year%100 == 0)
{
if (year%400 == 0)
leap_year = true;
else
leap_year = false;
}
else
leap_year = true;
}
else
leap_year = false;
return leap_year;
}//判断闰年函数结束
public int dow(int y,int m,int d)//判断星期几
{
int[] ww={6, 2, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};//天文星体运行值???这么高深的吗
int w;
w=ww[m-1]+y+(y/4)-(y/100)+(y/400);//闰年设定
if( ((y%4)==0) && (m<3) )//公式
{
w--;
if((y%100)==0) w++;
if((y%400)==0) w--;
}
return (w+d)%7;//回传星期几(0为星期日,1为星期一以此类推)
}
private void initGUI()//主界面
{
try
{
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//设定外框窗口主要功能列为标准(缩到最小,放到最大,关闭)
{
this.setTitle("万年行事历");//窗口标题
jDesktopPane1 = new JDesktopPane();//建立一桌面
getContentPane().add(jDesktopPane1, BorderLayout.CENTER);
jDesktopPane1.setPreferredSize(new java.awt.Dimension(739, 471));//设定桌面大小
{//建立桌面2开始(放日期按钮的桌面)
jDesktopPane2 = new JDesktopPane();
jDesktopPane1.add(jDesktopPane2);
jDesktopPane2.setBounds(0, 47, 396, 308);
//jDesktopPane2.setBackground(new java.awt.
没有合适的资源?快使用搜索试试~ 我知道了~
java-project-master.zip_JavaSwing_ppi_;日历客户端
共54个文件
class:27个
java:13个
jar:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 174 浏览量
2022-09-21
22:09:27
上传
评论
收藏 2.12MB ZIP 举报
温馨提示
运行在Windows平台的下的java开发的小日历程序
资源推荐
资源详情
资源评论
收起资源包目录
java-project-master.zip (54个子文件)
java-project-master
bin
com
lixiyu
frame
login.class 6KB
login$2.class 942B
Register$2.class 1KB
TESTnewframe.class 13KB
TESTnewframe$CustomItemListener.class 987B
login$1.class 1KB
login$3.class 3KB
TESTnewframe$4.class 806B
TESTnewframe$1.class 822B
login$4$1.class 971B
Register$1$1.class 929B
TESTnewframe$3.class 806B
Register$1.class 3KB
login$3$1.class 971B
Register.class 5KB
login$4.class 972B
TESTnewframe$2.class 806B
model
User.class 1KB
MyDate.class 1KB
util
DocumentSizeListener.class 2KB
MyMouseListener.class 2KB
BackgroundPanel.class 775B
DBConfig.class 360B
DBHelper.class 6KB
SwingUtil.class 762B
DocumentSizeFilter.class 2KB
ColorfulCAPTCHALabel.class 2KB
2.jpg 10KB
1.jpg 56KB
image
1.jpg 56KB
background.png 296KB
1.png 102KB
3.png 155KB
db
db_database01.sql 491B
.settings
org.eclipse.jdt.core.prefs 587B
src
com
lixiyu
frame
login.java 8KB
TESTnewframe.java 19KB
Register.java 9KB
model
User.java 625B
MyDate.java 682B
util
DBConfig.java 261B
ColorfulCAPTCHALabel.java 1KB
MyMouseListener.java 2KB
DocumentSizeFilter.java 1KB
DocumentSizeListener.java 1KB
DBHelper.java 6KB
BackgroundPanel.java 445B
SwingUtil.java 527B
.project 372B
.classpath 563B
lib
mysql-connector-java-5.1.40-bin.jar 968KB
commons-lang-2.6.jar 278KB
commons-dbutils-1.3.jar 40KB
jna-3.3.0-platform.jar 822KB
共 54 条
- 1
资源评论
林当时
- 粉丝: 100
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于HTML的旅游网页制作源码设计.zip
- 基于HTML的旅游网页制作源码设计.zip
- 大数据实战Demo系统-MaxCompute数据仓库数据转换实践(PDF格式).rar
- 六一儿童节代码祝福六一儿童节代码祝福六一儿童节代码祝福.txt
- sql语句sql语句sql语句sql语句.txt
- ubuntu20.04安装教程ubuntu20.04安装教程.txt
- imgcache.0
- 高分项目基于faster-rcnn知识蒸馏的目标检测模型增量深度学习方法源码.zip
- 基于python和图数据库neo4j构建电影应用(高分毕设项目)
- 基于yolov5+SAHI模块完成超分辨率以及小目标检测演示源码+运行说明.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功