日歷顯示讀出輸入的年月的java代碼
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import javax.swing.JOptionPane;
class CalendarBean { //定義一個(gè)日歷類
String day[]; //天數(shù)數(shù)組
int year = 2011, month = 9; //給定一個(gè)初始年月
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]; //定義一個(gè)以字符串?dāng)?shù)組
Calendar 日歷 = Calendar.getInstance();
日歷.set(year, month - 1, 1);
int 星期幾 = 日歷.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 = 星期幾, n = 1; i < 星期幾 + day; i++) {
a[i] = String.valueOf(n);
n++;
}
return a;
}
}
class CalendarFrame extends Frame implements ActionListener {
Label labelDay[] = new Label[42]; //用來(lái)輸出日歷的天的數(shù)組
Button titleName[] = new Button[7]; //周一到周天的按鍵
String name[] = { "日", "一", "二", "三", "四", "五", "六" };
TextField text1, text2; //定義輸入的年份和月份
Button nextMonth, previousMonth, Enter; //下個(gè)月,上個(gè)月,確定
Label lab1, lab2, lab3; //幾個(gè)文本類型的字符串
int year = 2012, month = 9;
CalendarBean calendar; //頂一個(gè)量
Label showMessage = new Label("", Label.CENTER); // 定義一個(gè)用于顯示 當(dāng)前年月的label 表明,標(biāo)簽上應(yīng)為中心。
public CalendarFrame() { //窗體類
Panel pCenter = new Panel(); //鑲嵌
pCenter.setLayout(new GridLayout(7, 7));
for (int i = 0; i < 7; i++) { //給周日到周六的button添加顯示文本
titleName[i] = new Button(name[i]);
pCenter.add(titleName[i]);
}
for (int i = 0; i < 42; i++) {
labelDay[i] = new Label("", Label.CENTER);
pCenter.add(labelDay[i]);
}
calendar = new CalendarBean();
calendar.setYear(year); //設(shè)定年
calendar.setMonth(month);
String day[] = calendar.getCalendar(); //設(shè)定天
for (int i = 0; i < 42; i++) { //給日歷位置循環(huán)添加顯示日歷天
labelDay[i].setText(day[i]);
}
lab1 = new Label("請(qǐng)輸入日期"); //調(diào)用一個(gè)方法 new一個(gè)對(duì)象
lab2 = new Label("年份");
lab3 = new Label("月份");
Enter = new Button("確定");
text1 = new TextField(10);
text2 = new TextField(5);
nextMonth = new Button("下月");
previousMonth = new Button("上月");
Enter.addActionListener(this); //添加指定的動(dòng)作偵聽(tīng)器
nextMonth.addActionListener(this);
previousMonth.addActionListener(this);
Panel pNorth = new Panel(), pSouth = new Panel();
pNorth.add(lab1);
pNorth.add(lab2);
pNorth.add(text1);
pNorth.add(lab3);
pNorth.add(text2);
pNorth.add(Enter);
pNorth.add(previousMonth);
pNorth.add(nextMonth);
pSouth.add(showMessage);
showMessage.setText("日歷:" + calendar.getYear() + "年" + calendar.getMonth() + "月");
ScrollPane scrollPane = new ScrollPane(); //實(shí)現(xiàn)單個(gè)子組件的自動(dòng)水平和/或垂直滾動(dòng)的容器類
scrollPane.add(pCenter);
add(scrollPane, BorderLayout.CENTER);
add(pNorth, BorderLayout.NORTH);
add(pSouth, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == nextMonth) { //如果獲得的操作時(shí)下個(gè)月的
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 {
String yea = text1.getText();
String mon = text2.getText();
try {
year = Integer.parseInt(yea); //把string轉(zhuǎn)成int類型
month = Integer.parseInt(mon);
if (month > 12 || month < 1 || year < 1) { //錯(cuò)誤輸入的處理
JOptionPane.showMessageDialog(null, "請(qǐng)輸入正確月份或月份");
return;
} else {
calendar.setYear(year);
calendar.setMonth(month);
}
String day[] = calendar.getCalendar();
for (int i = 0; i < 42; i++) {
labelDay[i].setText(day[i]);
}
} catch (NumberFormatException ee) {
JOptionPane.showMessageDialog(null, "請(qǐng)輸入正確的年份及月份");
}
}
showMessage.setText("日歷:" + calendar.getYear() + "年" + calendar.getMonth() + "月");
}
}
public class CalendarMainClass {
public static void main(String args[]) {
CalendarFrame frame = new CalendarFrame();
frame.setTitle("日歷");
frame.setBounds(300, 200, 500, 300);
frame.setVisible(true); //顯示窗口
frame.validate(); //使生效
frame.addWindowListener(new java.awt.event.WindowAdapter() { //點(diǎn)擊叉號(hào)關(guān)閉frame程序
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
}
}


- Java實(shí)現(xiàn)窗體程序顯示日歷表
- Java編寫(xiě)日歷表的3種方式
- java萬(wàn)年歷,獲取該年月日歷表
- Java中的Calendar日歷API用法完全解析
- Java實(shí)現(xiàn)的日歷功能完整示例
- Java實(shí)現(xiàn)簡(jiǎn)單日歷小程序 Java圖形界面小日歷開(kāi)發(fā)
- java實(shí)現(xiàn)日歷(某年的日歷,某月的日歷)用戶完全自定義
- 學(xué)習(xí)Java中的日期和時(shí)間處理及Java日歷小程序的編寫(xiě)
- JavaWeb項(xiàng)目FullCalendar日歷插件使用的示例代碼
- java獲取本月日歷表的方法
相關(guān)文章
Java使用自定義注解實(shí)現(xiàn)為事件源綁定事件監(jiān)聽(tīng)器操作示例
這篇文章主要介紹了Java使用自定義注解實(shí)現(xiàn)為事件源綁定事件監(jiān)聽(tīng)器操作,結(jié)合實(shí)例形式分析了java自定義注解、注解處理、事件監(jiān)聽(tīng)與響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
使用IDEA創(chuàng)建一個(gè)vert.x項(xiàng)目的方法
這篇文章主要介紹了使用IDEA創(chuàng)建一個(gè)vert.x項(xiàng)目的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
quartz定時(shí)執(zhí)行任務(wù),并配置web.xml的操作方法
下面小編就為大家?guī)?lái)一篇quartz定時(shí)執(zhí)行任務(wù),并配置web.xml的操作方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之寵物商城系統(tǒng)的實(shí)現(xiàn)流程
這是一個(gè)使用了java+Springboot+Maven+mybatis+Vue+mysql開(kāi)發(fā)的寵物商城系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有寵物商城該有的所有功能,感興趣的朋友快來(lái)看看吧2022-01-01
Java使用JDBC連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Java使用JDBC連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,包括了詳細(xì)的加載步驟以及完整實(shí)現(xiàn)示例,需要的朋友可以參考下2014-09-09
java定時(shí)任務(wù)的實(shí)現(xiàn)方法
java定時(shí)任務(wù)的實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-03-03
spring事務(wù)的REQUIRES_NEW源碼示例解析
這篇文章主要為大家介紹了spring事務(wù)的REQUIRES_NEW源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解
這篇文章主要介紹了java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解的相關(guān)資料,這里附有實(shí)例代碼,具有參考價(jià)值,需要的朋友可以參考下2017-01-01

