最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)萬(wàn)年歷效果

 更新時(shí)間:2022年06月13日 14:27:05   作者:薛定諤的貓87  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)萬(wàn)年歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java實(shí)現(xiàn)萬(wàn)年歷效果的具體代碼,供大家參考,具體內(nèi)容如下

要求:

綜合運(yùn)用GUI編程、事件處理、Calendar類應(yīng)用等知識(shí)設(shè)計(jì)一款月歷,要求能通過(guò)輸入(或選擇)年月的方式正確顯示當(dāng)前月份的所有日期。

一、分析需求:

1、設(shè)計(jì)一個(gè)窗體,該窗體為BorderLayout布局;
2、窗體的中心添加一個(gè)Panel容器:Panel容器的布局是7行7列的GridLayout布局,Panel容器中放置49個(gè)標(biāo)簽,用來(lái)顯示日歷;
3、實(shí)現(xiàn)判斷是否是閏年;
4、計(jì)算某一個(gè)月的天數(shù);
5、明白一個(gè)月的第一天是周幾,求出月歷前面需要空的格數(shù);

二、代碼實(shí)現(xiàn)

package pro_one;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

@SuppressWarnings("serial")
public class pro_one extends JFrame implements ActionListener {

?? ?JPanel head=new JPanel();//上部容器
? ? JPanel body=new JPanel();//中部容器
? ? JPanel foot=new JPanel();//下部容器
? ? Calendar calendar=Calendar.getInstance();
? ? int dayNow=calendar.get(Calendar.DATE);
? ? int monthNow=calendar.get(Calendar.MONTH)+1;
? ? int yearNow=calendar.get(Calendar.YEAR);
? ??
? ? private JTextField text;//查詢年份
? ? int year = calendar.get(Calendar.YEAR);//獲取當(dāng)前查詢年份,默認(rèn)為當(dāng)前年份

? ? private JTextField text1;//查詢?cè)路?
? ? int month = calendar.get(Calendar.MONTH)+1;//獲取當(dāng)前查詢?cè)路荩J(rèn)為當(dāng)前月份
? ??
? ? private pro_one(){//構(gòu)造方法
? ? ? ? //主要參數(shù)設(shè)置
? ? ? ? setTitle("月歷");
? ? ? ? setSize(600,480);
? ? ? ? setLocationRelativeTo(null);//窗體居中
? ? ? ? setResizable(false);//關(guān)閉窗體大小可調(diào)
? ? ? ? setDefaultCloseOperation(EXIT_ON_CLOSE);

? ? ? ? //界面布局
? ? ? ? //上部容器
? ? ? ? head.setLayout(new FlowLayout());
? ? ? ? JButton searchJButton=new JButton("確定");
? ? ? ? searchJButton.setFont(new Font("SimHei",Font.BOLD,15));
? ? ? ? searchJButton.setPreferredSize(new Dimension(50,35));
? ? ? ? searchJButton.setBorder(null);
? ? ? ? JButton upJButton=new JButton("上月");
? ? ? ? upJButton.setFont(new Font("SimHei",Font.BOLD,15));
? ? ? ? upJButton.setBorder(null);
? ? ? ? upJButton.setPreferredSize(new Dimension(50,35));
? ? ? ? JButton downJButton=new JButton("下月");
? ? ? ? downJButton.setFont(new Font("SimHei",Font.BOLD,15));
? ? ? ? downJButton.setBorder(null);
? ? ? ? downJButton.setPreferredSize(new Dimension(50,35));
? ? ? ? JLabel jLabelShow=new JLabel("請(qǐng)輸入日期 年份:");
? ? ? ? jLabelShow.setFont(new Font("SimHei",Font.BOLD,15));
? ? ? ? JLabel jLabelShow1=new JLabel("月份:");
? ? ? ? jLabelShow1.setFont(new Font("SimHei",Font.BOLD,15));
? ? ? ??
? ? ? ? text=new JTextField(4);
? ? ? ? text1=new JTextField(2);
? ? ? ? head.add(jLabelShow);
? ? ? ? head.add(text);
? ? ? ? head.add(jLabelShow1);
? ? ? ? head.add(text1);
? ? ? ? head.add(searchJButton);
? ? ? ? head.add(upJButton);
? ? ? ? head.add(downJButton);
? ? ? ? searchJButton.addActionListener(this);
? ? ? ? upJButton.addActionListener(this);
? ? ? ? downJButton.addActionListener(this);

? ? ? ? //中部容器
? ? ? ? body.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);//每行添加組件的順序
? ? ? ? body.setLayout(new GridLayout(7,7,1,1));
? ? ? ? getDateInfo(String.valueOf(year)+"-"+String.valueOf(month));

? ? ? ? //下部容器
? ? ? ? foot.setSize(new Dimension(500,200));
? ? ? ? foot.setLayout(new FlowLayout(FlowLayout.CENTER));


? ? ? ? Container integralContainer=this.getContentPane();//創(chuàng)建全局容器
? ? ? ? integralContainer.add(head,BorderLayout.NORTH);
? ? ? ? integralContainer.add(body,BorderLayout.CENTER);
? ? ? ? integralContainer.add(foot,BorderLayout.SOUTH);


? ? }


? ? @Override
? ? public void actionPerformed(ActionEvent actionEvent) {//監(jiān)聽(tīng)事件
? ? ? ? String label=actionEvent.getActionCommand();
? ? ? ? switch (label) {
? ? ? ? ? ? case "確定":
? ? ? ? ? ? ? ? System.out.println("進(jìn)入查詢");
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? year = Integer.parseInt(text.getText());
?? ??? ??? ??? ??? ?month=Integer.parseInt(text1.getText());
? ? ? ? ? ? ? ? ? ? getDateInfo(String.valueOf(year)+"-"+String.valueOf(month));
? ? ? ? ? ? ? ? }catch (NumberFormatException e){
? ? ? ? ? ? ? ? ? ? System.out.println("非數(shù)字異常已被捕獲,進(jìn)程正常!");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case "上月":
? ? ? ? ? ? ? ? System.out.println("進(jìn)入上月");
? ? ? ? ? ? ? ? if (month==1){
? ? ? ? ? ? ? ? ? ? year--;
? ? ? ? ? ? ? ? ? ? month=12;
? ? ? ? ? ? ? ? }else
? ? ? ? ? ? ? ? ? ? month--;
? ? ? ? ? ? ? ? getDateInfo(String.valueOf(year)+"-"+String.valueOf(month));
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case "下月":
? ? ? ? ? ? ? ? System.out.println("進(jìn)入下月");
? ? ? ? ? ? ? ? if (month==12){
? ? ? ? ? ? ? ? ? ? year++;
? ? ? ? ? ? ? ? ? ? month=1;
? ? ? ? ? ? ? ? }else
? ? ? ? ? ? ? ? ? ? month++;
? ? ? ? ? ? ? ? getDateInfo(String.valueOf(year)+"-"+String.valueOf(month));
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? }

? ? private void getDateInfo(String date) {//獲取日期信息
? ? ? ? try {
? ? ? ? ? ? SimpleDateFormat dFormat = new SimpleDateFormat("yyyy-MM");// 日期格式化類
? ? ? ? ? ? Date parse = dFormat.parse(date);// 把字符串類型的日期轉(zhuǎn)換為date類型的
? ? ? ? ? ? Calendar calendar = new GregorianCalendar();// 創(chuàng)建一個(gè)公歷類的實(shí)例
? ? ? ? ? ? calendar.setTime(parse);// 把格式化好的日期對(duì)象放進(jìn)Calendar
? ? ? ? ? ? calendar.set(Calendar.DATE, 1);//重置日期為第一天
? ? ? ? ? ? // 獲取這個(gè)月的第一天是周幾
? ? ? ? ? ? int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
? ? ? ? ? ? // 獲取每個(gè)月最大的天數(shù)
? ? ? ? ? ? int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
? ? ? ? ? ? body.removeAll();
? ? ? ? ? ? body.repaint();

? ? ? ? ? ? String[] title = {"日", "一", "二", "三", "四", "五", "六"};
? ? ? ? ? ? for (String label : title) {
? ? ? ? ? ? ? ? JLabel jLabel = new JLabel(label);
? ? ? ? ? ? ? ? jLabel.setHorizontalAlignment(JLabel.CENTER);
?? ??? ??? ??? ?jLabel.setBorder(BorderFactory.createLineBorder(Color.black));
? ? ? ? ? ? ? ? jLabel.setFont(new Font("SimHei", Font.BOLD, 18));
? ? ? ? ? ? ? ? body.add(jLabel);
? ? ? ? ? ? ? ? body.revalidate();
? ? ? ? ? ? }
? ? ? ? ? ? for (int i = 1; i <= 42; i++) {
? ? ? ? ? ? ? ? if (i >= weekDay && i <= (maxDay + weekDay - 1)) {
? ? ? ? ? ? ? ? ? ? JLabel jLabel = new JLabel(String.valueOf(i - weekDay + 1));
? ? ? ? ? ? ? ? ? ? jLabel.setFont(new Font("SimHei", Font.BOLD, 15));
? ? ? ? ? ? ? ? ? ? jLabel.setHorizontalAlignment(JLabel.CENTER);
? ? ? ? ? ? ? ? ? ? if ((year==yearNow)&&(month==monthNow)&&(i - weekDay + 1==dayNow)){
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("00");
? ? ? ? ? ? ? ? ? ? ? ? jLabel.setBorder(BorderFactory.createLineBorder(Color.WHITE));
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? body.add(jLabel);
? ? ? ? ? ? ? ? ? ? body.revalidate();
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? JLabel jLabel = new JLabel("");
? ? ? ? ? ? ? ? ? ? jLabel.setHorizontalAlignment(JLabel.CENTER);
? ? ? ? ? ? ? ? ? ? jLabel.setFont(new Font("SimHei", Font.BOLD, 15));
? ? ? ? ? ? ? ? ? ? body.add(jLabel);
? ? ? ? ? ? ? ? ? ? body.revalidate();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? if (year > 0 && year <= 9999) {
? ? ? ? ? ? ? ? foot.removeAll();
? ? ? ? ? ? ? ? foot.repaint();
? ? ? ? ? ? ? ? JLabel show = new JLabel(year + "年" + month + "月");
? ? ? ? ? ? ? ? show.setFont(new Font("SimHei", Font.BOLD, 20));
? ? ? ? ? ? ? ? foot.add(show);//將標(biāo)簽添加到下部容器
? ? ? ? ? ? ? ? foot.revalidate();
? ? ? ? ? ? }
? ? ? ? }catch (ParseException e){
? ? ? ? ? ? System.out.println("日期異常亦已被捕獲,進(jìn)程正常!");
? ? ? ? }
? ? }

? ? public static void main(String[] args){//主方法
? ? ? ? JFrame jFrame=new pro_one();
? ? ? ? jFrame.setVisible(true);
? ? }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析JAVA 循環(huán)結(jié)構(gòu)

    淺析JAVA 循環(huán)結(jié)構(gòu)

    這篇文章主要介紹了JAVA 循環(huán)結(jié)構(gòu)的相關(guān)資料,文中講解的非常細(xì)致,示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • SpringBoot實(shí)現(xiàn)文件的上傳、下載和預(yù)覽功能

    SpringBoot實(shí)現(xiàn)文件的上傳、下載和預(yù)覽功能

    在Spring Boot項(xiàng)目中實(shí)現(xiàn)文件的上傳、下載和預(yù)覽功能,可以通過(guò)使用Spring MVC的MultipartFile接口來(lái)處理文件上傳,并使用HttpServletResponse或Resource來(lái)實(shí)現(xiàn)文件下載和預(yù)覽,下面是如何實(shí)現(xiàn)這些功能的完整示例,需要的朋友可以參考下
    2024-08-08
  • java實(shí)現(xiàn)對(duì)服務(wù)器的自動(dòng)巡檢郵件通知

    java實(shí)現(xiàn)對(duì)服務(wù)器的自動(dòng)巡檢郵件通知

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)對(duì)服務(wù)器的自動(dòng)巡檢郵件通知,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • mybatis動(dòng)態(tài)插入list傳入List參數(shù)的實(shí)例代碼

    mybatis動(dòng)態(tài)插入list傳入List參數(shù)的實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了mybatis動(dòng)態(tài)插入list,Mybatis 傳入List參數(shù)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-04-04
  • 基于java查找最長(zhǎng)字符串代碼實(shí)例

    基于java查找最長(zhǎng)字符串代碼實(shí)例

    這篇文章主要介紹了基于java查找最長(zhǎng)字符串代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java連接Mongodb實(shí)現(xiàn)增刪改查

    java連接Mongodb實(shí)現(xiàn)增刪改查

    這篇文章主要為大家詳細(xì)介紹了java連接Mongodb實(shí)現(xiàn)增刪改查,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Jasypt的StandardPBEByteEncryptor使用源碼解析

    Jasypt的StandardPBEByteEncryptor使用源碼解析

    這篇文章主要介紹了Jasypt的StandardPBEByteEncryptor使用源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Spring Boot中Redis數(shù)據(jù)庫(kù)的使用實(shí)例

    Spring Boot中Redis數(shù)據(jù)庫(kù)的使用實(shí)例

    Spring Boot中除了對(duì)常用的關(guān)系型數(shù)據(jù)庫(kù)提供了優(yōu)秀的自動(dòng)化支持之外,對(duì)于很多NoSQL數(shù)據(jù)庫(kù)一樣提供了自動(dòng)化配置的支持。本篇文章主要介紹了Spring Boot中Redis的使用實(shí)例代碼,有興趣的開(kāi)業(yè)了解一下。
    2017-04-04
  • SpringBoot的配置文件application.yml及加載順序詳解

    SpringBoot的配置文件application.yml及加載順序詳解

    這篇文章主要介紹了SpringBoot的配置文件application.yml及加載順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解Java虛擬機(jī)(JVM)運(yùn)行時(shí)

    詳解Java虛擬機(jī)(JVM)運(yùn)行時(shí)

    JVM(Java虛擬機(jī))是一個(gè)抽象的計(jì)算模型。這篇文章主要介紹了Java虛擬機(jī)(JVM)運(yùn)行時(shí)的相關(guān)知識(shí),需要的朋友可以參考下
    2018-10-10

最新評(píng)論

花垣县| 呼伦贝尔市| 洞口县| 观塘区| 吴旗县| 沁阳市| 如东县| 三亚市| 巴里| 江孜县| 井陉县| 成都市| 淮滨县| 岳池县| 福海县| 西吉县| 彩票| 渭南市| 崇文区| 蓝山县| 巫溪县| 海伦市| 兴安盟| 凤山县| 冕宁县| 本溪市| 南漳县| 开化县| 普安县| 高平市| 大渡口区| 左权县| 尤溪县| 玉溪市| 大丰市| 张掖市| 全椒县| 泽库县| 五莲县| 那曲县| 吉木乃县|