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

Java實(shí)現(xiàn)簡(jiǎn)單日歷小程序 Java圖形界面小日歷開(kāi)發(fā)

 更新時(shí)間:2021年07月29日 14:50:46   作者:明禮馨德  
這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)單日歷小程序,如何用Java swing開(kāi)發(fā)一款簡(jiǎn)單的小日歷,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

今天給大家介紹一下如何用Java swing開(kāi)發(fā)一款簡(jiǎn)單的小日歷,下面我們來(lái)看代碼:
首先創(chuàng)建一個(gè)CalendarBean類(lèi),用于基本的日期計(jì)算:

package other1; 
 
import java.util.Calendar;   
  
public class CalendarBean   
{   
    String day[];   
    int year=2005,month=0;      
    public void setYear(int year)   
    {   
      this.year=year;   
    }   
      
    public int getYear()   
    {   
      return year;   
    }   
      
    public void setMonth(int month)   
    {   
      this.month=month;   
    }   
      
    public int getMonth()   
    {   
      return month;   
    }   
      
    public String[] getCalendar()   
    {   
      String a[]=new String[42];   
      Calendar date=Calendar.getInstance();   
      date.set(year,month-1,1);   
      int week=date.get(Calendar.DAY_OF_WEEK)-1;   
      int day=0;   
       
      //判斷大月份  
      if(month==1||month==3||month==5||month==7  
       ||month==8||month==10||month==12)   
      {   
        day=31;   
      }   
        
      //判斷小月  
      if(month==4||month==6||month==9||month==11)   
      {   
        day=30;   
      }   
        
      //判斷平年與閏年  
      if(month==2)   
      {   
        if(((year%4==0)&&(year%100!=0))||(year%400==0))   
        {   
          day=29;   
        }   
          
        else   
        {   
          day=28;   
        }   
      }   
        
      for(int i=week,n=1;i<week+day;i++)   
      {   
          a[i]=String.valueOf(n) ;   
          n++;   
      }        
      return a;   
    }   
} 

然后再創(chuàng)建一個(gè)主界面類(lèi),用于界面的實(shí)現(xiàn):

package other1; 
 
import java.awt.*;   
import java.awt.event.*;   
import javax.swing.*;  
  
public class CalendarFrame extends JFrame implements ActionListener   
{   
    JLabel labelDay[]=new JLabel[42];   
    JTextField text=new JTextField(10);  
    JButton titleName[]=new JButton[7];   
    JButton button = new JButton();  
    String name[]={"日","一","二","三", "四","五","六"};   
    JButton nextMonth,previousMonth;   
    int year=1996,month=1; //啟動(dòng)程序顯示的日期信息  
    CalendarBean calendar;   
    JLabel showMessage=new JLabel("",JLabel.CENTER);   
    JLabel lbl1 = new JLabel("請(qǐng)輸入年份:");  
    JLabel lbl2=new JLabel("   ");  
  
    public CalendarFrame()   
    { 
    setBackground(new Color(0, 128, 128));   
      JPanel pCenter=new JPanel();   
      pCenter.setBackground(new Color(0, 139, 139)); 
        
     //將pCenter的布局設(shè)置為7行7列的GridLayout 布局。   
      pCenter.setLayout(new GridLayout(7,7));   
        
     //pCenter添加組件titleName[i]  
      for(int i=0;i<7;i++)   
      {   
        titleName[i]=new JButton(name[i]);   
        pCenter.add(titleName[i]);   
      }   
  
     //pCenter添加組件labelDay[i]  
      for(int i=0;i<42;i++)   
      {   
        labelDay[i]=new JLabel("",JLabel.CENTER);   
        pCenter.add(labelDay[i]);  
      }   
        
      text.addActionListener(this);  
      calendar=new CalendarBean();   
      calendar.setYear(year);   
      calendar.setMonth(month);   
      String day[]=calendar.getCalendar();   
  
      for(int i=0;i<42;i++)   
      {   
        labelDay[i].setText(day[i]);   
      }   
  
      nextMonth=new JButton("下月");   
      previousMonth=new JButton("上月");   
      button=new JButton("確定");  
        
      //注冊(cè)監(jiān)聽(tīng)器  
      nextMonth.addActionListener(this);   
      previousMonth.addActionListener(this);   
      button.addActionListener(this);  
        
      JPanel pNorth=new JPanel(),  
      pSouth=new JPanel();   
      pNorth.add(showMessage);   
      pNorth.add(lbl2);   
      pNorth.add(previousMonth);   
      pNorth.add(nextMonth);   
      pSouth.add(lbl1);      
      pSouth.add(text);  
      pSouth.add(button);  
      showMessage.setText("日歷:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );  
      ScrollPane scrollPane=new ScrollPane();   
      scrollPane.add(pCenter);   
      getContentPane().add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心區(qū)域   
      getContentPane().add(pNorth,BorderLayout.NORTH);// 窗口添加pNorth 在北面區(qū)域   
      getContentPane().add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南區(qū)域。  
  
    }   
     
    public void actionPerformed(ActionEvent e)   
    {   
      if(e.getSource()==nextMonth)   
      {   
        month=month+1;   
        if(month>12)   
        month=1;   
        calendar.setMonth(month);   
        String day[]=calendar.getCalendar();   
  
        for(int i=0;i<42;i++)   
        {  
          labelDay[i].setText(day[i]);   
        }   
       }   
      else if(e.getSource()==previousMonth)   
      {   
        month=month-1;         
        if(month<1)   
        month=12;   
        calendar.setMonth(month);   
        String day[]=calendar.getCalendar();   
  
        for(int i=0;i<42;i++)   
        {   
          labelDay[i].setText(day[i]);   
        }   
       }   
      else if(e.getSource()==button)  
      {  
        month=month+1;         
        if(month>12)          
           month=1;         
        calendar.setYear(Integer.parseInt(text.getText()));         
        String day[]=calendar.getCalendar();          
        for(int i=0;i<42;i++)  
        {  
          labelDay[i].setText(day[i]);  
        }  
      }  
     showMessage.setText("日歷:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );   
    }   
} 

最后用一個(gè)類(lèi)調(diào)用即可:

package other1; 
 
import javax.swing.JFrame;  
import javax.swing.UIManager;  
  
public class CalendarMainClass   
{   
    public static void main(String args[])   
    {   
       try {  
         UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面風(fēng)格  
       }catch (Exception e) {  
        e.printStackTrace();  
       }  
       CalendarFrame frame=new CalendarFrame();   
       frame.setBounds(100,100,360,300);   
       frame.setTitle("日歷小程序");  
       frame.setLocationRelativeTo(null);//窗體居中顯示  
       frame.setVisible(true);   
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }   
} 

運(yùn)行結(jié)果如下:

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

相關(guān)文章

  • Java兩大工具庫(kù)Commons和Guava使用示例詳解

    Java兩大工具庫(kù)Commons和Guava使用示例詳解

    這篇文章主要為大家介紹了Java兩大工具庫(kù)Commons和Guava使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • idea中文件被Mark as Plain Text后恢復(fù)方式

    idea中文件被Mark as Plain Text后恢復(fù)方式

    在IntelliJ IDEA中,如果錯(cuò)誤地將文件標(biāo)記為純文本(Mark as Plain Text),可以通過(guò)在項(xiàng)目目錄中右鍵點(diǎn)擊文件并選擇“Mark as”來(lái)恢復(fù)原文件類(lèi)型
    2024-11-11
  • Mybatis-Plus中的MetaObjectHandler組件的使用

    Mybatis-Plus中的MetaObjectHandler組件的使用

    MetaObjectHandler是Mybatis-Plus中一個(gè)實(shí)用組件,專(zhuān)門(mén)用于自動(dòng)處理實(shí)體對(duì)象中的特定字段,如創(chuàng)建時(shí)間、更新時(shí)間、創(chuàng)建人和修改人等,該接口允許開(kāi)發(fā)者在不修改業(yè)務(wù)代碼的情況下,實(shí)現(xiàn)自動(dòng)填充功能,極大地簡(jiǎn)化了代碼的復(fù)雜性,感興趣的可以了解一下
    2024-10-10
  • maven的生命周期及常用命令介紹

    maven的生命周期及常用命令介紹

    maven是一個(gè)項(xiàng)目構(gòu)建和管理的工具,提供了幫助管理 構(gòu)建、文檔、報(bào)告、依賴(lài)、scms、發(fā)布、分發(fā)的方法。下面通過(guò)本文給大家分享maven的生命周期及常用命令介紹,需要的朋友參考下吧
    2017-11-11
  • SpringCloud實(shí)現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway詳細(xì)分析

    SpringCloud實(shí)現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway詳細(xì)分析

    這篇文章主要介紹了SpringCloud實(shí)現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-04-04
  • SpringBoot?實(shí)現(xiàn)微信推送模板的示例代碼

    SpringBoot?實(shí)現(xiàn)微信推送模板的示例代碼

    這篇文章主要介紹了SpringBoot?實(shí)現(xiàn)微信推送模板,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 小議Java中@param注解與@see注解的作用

    小議Java中@param注解與@see注解的作用

    這篇文章主要介紹了Java中@param注解與@see注解的作用,注解的功能類(lèi)似于通常代碼中的注釋,需要的朋友可以參考下
    2015-12-12
  • java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):緒論

    java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):緒論

    這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對(duì)廣大的程序愛(ài)好者有所幫助,同時(shí)祝大家有一個(gè)好成績(jī),需要的朋友可以參考下,希望能給你帶來(lái)幫助
    2021-07-07
  • 詳解安裝Eclipse Maven插件的幾種方法

    詳解安裝Eclipse Maven插件的幾種方法

    本篇文章主要介紹了詳解安裝Eclipse Maven插件的幾種方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Java之ThreadPoolExecutor類(lèi)詳解

    Java之ThreadPoolExecutor類(lèi)詳解

    這篇文章主要介紹了Java之ThreadPoolExecutor類(lèi)詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論

华容县| 广元市| 九江县| 贵定县| 刚察县| 康保县| 松桃| 清河县| 临安市| 涡阳县| 定日县| 札达县| 资阳市| 兖州市| 余江县| 定远县| 丰台区| 水城县| 海盐县| 乌兰察布市| 曲麻莱县| 贞丰县| 南涧| 康定县| 榆中县| 诏安县| 女性| 罗定市| 清徐县| 夏河县| 香港 | 淄博市| 洱源县| 弋阳县| 黄梅县| 白沙| 灌云县| 钟祥市| 哈密市| 阳西县| 高雄县|