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

Java實(shí)現(xiàn)窗體程序顯示日歷表

 更新時(shí)間:2022年06月13日 11:40:49   作者:陰天快樂、、  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)窗體程序顯示日歷表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

 本文實(shí)例為大家分享了Java實(shí)現(xiàn)窗體程序顯示日歷表的具體代碼,供大家參考,具體內(nèi)容如下

實(shí)訓(xùn)要求:

1.簡(jiǎn)單實(shí)現(xiàn)日歷功能,能查看前月后月的日歷功能。
2.使用JTable 組件顯示日歷。

參考結(jié)果:

代碼:

CalendaBean.java

import java.util.Calendar;
?
public class CalendaBean {
?? ?Test test;
?? ?String[] day;
?
?? ?int year = 2017, month = 7;
?
?? ?public void setYear(int year) {
?? ??? ?this.year = year;
?? ?}
?
?? ?public void setMonth(int month) {
?? ??? ?this.month = month;
?? ?}
?
?? ?public int Last() {
?? ??? ?month--;
?? ??? ?if (month == 0) {
?? ??? ??? ?month = 12;
?? ??? ??? ?year--;
?? ??? ?}
?? ??? ?return month;
?? ?}
?
?? ?public int Next() {
?? ??? ?month++;
?? ??? ?if (month == 13) {
?? ??? ??? ?month = 1;
?? ??? ??? ?year++;
?? ??? ?}
?? ??? ?return month;
?? ?}
?
?? ?public String[] getCalendar() {
?? ??? ?String[] a = new String[42];
?? ??? ?Calendar rili = Calendar.getInstance();
?? ??? ?rili.set(year, month - 1, 1);
?? ??? ?int weekDay = rili.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 = 0; i < weekDay; i++)
?? ??? ??? ?a[i] = " ";
?? ??? ?for (int i = weekDay, n = 1; i < weekDay + day; i++) {
?? ??? ??? ?a[i] = String.valueOf(n);
?? ??? ??? ?n++;
?? ??? ?}
?? ??? ?for (int i = weekDay + day; i < a.length; i++)
?? ??? ??? ?a[i] = " ";
?? ??? ?return a;
?? ?}
}

Change.java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
?
import javax.swing.JLabel;
?
public class Change implements ActionListener {
?? ?CalendaBean c;
?? ?JLabel now;
?? ?Test test;
?
?? ?public void actionPerformed(ActionEvent e) {
?? ??? ?String str = e.getActionCommand();
?? ??? ?if (str.equals("lastmonth")) {
?? ??? ??? ?c.Last();
?? ??? ?} else if (str.equals("nextmonth")) {
?? ??? ??? ?c.Next();
?? ??? ?}
?? ??? ?test.Rili();
?? ??? ?now.setText("日歷 :" + c.year + "年" + c.month + "月");
?? ?}
?
}

Test.java

import java.awt.*;
import java.awt.event.*;
?
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
?
public class Test extends JFrame {
?? ?JButton bx, by;
?? ?CalendaBean cb = new CalendaBean();
?? ?Change change = new Change();
?? ?DefaultTableModel model;
?? ?String[] label;
?? ?JLabel now;
?? ?JTable table = new JTable();
?? ?JScrollPane pane = new JScrollPane();
?? ?Object[] columnNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
?? ?Object[][] rowData = { { null, null, null, null, null, null, null },
?? ??? ??? ?{ null, null, null, null, null, null, null },
?? ??? ??? ?{ null, null, null, null, null, null, null },
?? ??? ??? ?{ null, null, null, null, null, null, null },
?? ??? ??? ?{ null, null, null, null, null, null, null },
?? ??? ??? ?{ null, null, null, null, null, null, null }, };
?
?? ?public static void main(String[] args) {
?? ??? ?Test frame = new Test();
?? ??? ?frame.setSize(500, 400);
?? ??? ?frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
?? ??? ?frame.setTitle("日歷");
?? ??? ?frame.setVisible(true);
?
?? ?}
?
?? ?public Test() {
?? ??? ?change.test = this;
?? ??? ?int year, month;
?? ??? ?setLayout(new BorderLayout());
?? ??? ?JPanel pNorth = new JPanel();
?? ??? ?cb = new CalendaBean();
?? ??? ?change.c = cb;
?? ??? ?bx = new JButton("上月");
?? ??? ?by = new JButton("下月");
?? ??? ?bx.setActionCommand("lastmonth");
?? ??? ?by.setActionCommand("nextmonth");
?? ??? ?bx.addActionListener(new ActionListener() {
?? ??? ??? ?public void actionPerformed(ActionEvent e) {
?? ??? ??? ??? ?change.actionPerformed(e);
?
?? ??? ??? ?}
?? ??? ?});
?? ??? ?by.addActionListener(new ActionListener() {
?? ??? ??? ?public void actionPerformed(ActionEvent e) {
?? ??? ??? ??? ?change.actionPerformed(e);
?? ??? ??? ?}
?? ??? ?});
?? ??? ?pNorth.add(bx);
?? ??? ?pNorth.add(by);
?
?? ??? ?Rili();
?? ??? ?model = new DefaultTableModel(rowData, columnNames);
?
?? ??? ?table = new JTable(model);
?? ??? ?table.setRowHeight(38);
?? ??? ?table.getTableHeader().setResizingAllowed(false);
?
?? ??? ?pane = new JScrollPane(table);
?? ??? ?JPanel pSouth = new JPanel();
?? ??? ?now = new JLabel();
?? ??? ?now.setText("日歷:" + cb.year + "年" + cb.month + "月");
?? ??? ?change.now = now;
?? ??? ?pSouth.add(now);
?? ??? ?add(pNorth, BorderLayout.NORTH);
?? ??? ?add(pane, BorderLayout.CENTER);
?? ??? ?add(pSouth, BorderLayout.SOUTH);
?? ?}
?
?? ?public void Rili() {
?
?? ??? ?String[] a = cb.getCalendar();
?? ??? ?int x = 0;
?? ??? ?if (model != null) {
?? ??? ??? ?model.setRowCount(0);
?? ??? ?}
?? ??? ?for (int i = 0; i < 6; i++) {
?? ??? ??? ?for (int j = 0; j < 7; j++) {
?? ??? ??? ??? ?rowData[i][j] = a[x];
?? ??? ??? ??? ?x++;
?? ??? ??? ?}
?? ??? ??? ?if (model != null)
?? ??? ??? ??? ?model.addRow(rowData[i]);
?? ??? ?}
?? ?}
}

運(yùn)行結(jié)果

說明:這個(gè)程序與前幾天上傳的日歷顯示表差不多,只是改了中間的組件,原本以為是很簡(jiǎn)單的事,結(jié)果做的時(shí)候才發(fā)現(xiàn)其中的難點(diǎn),初學(xué)Java還有很多不懂的地方,幸好有大神的解答,自己還有很多需要學(xué)習(xí)的地方。

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

相關(guān)文章

  • 詳解 Corba開發(fā)之Java實(shí)現(xiàn)Service與Client

    詳解 Corba開發(fā)之Java實(shí)現(xiàn)Service與Client

    這篇文章主要介紹了詳解 Corba開發(fā)之Java實(shí)現(xiàn)Service與Client的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Java實(shí)現(xiàn)聊天機(jī)器人

    Java實(shí)現(xiàn)聊天機(jī)器人

    這篇文章主要為大家詳細(xì)介紹了Java簡(jiǎn)單實(shí)現(xiàn)聊天機(jī)器人,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java重載構(gòu)造原理與用法詳解

    Java重載構(gòu)造原理與用法詳解

    這篇文章主要介紹了Java重載構(gòu)造原理與用法,結(jié)合實(shí)例形式分析了java可變參數(shù)、方法重載、構(gòu)造器等相關(guān)概念、原理及操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • JVM詳解之匯編角度理解本地變量的生命周期

    JVM詳解之匯編角度理解本地變量的生命周期

    這篇文章主要介紹了JVM詳解之匯編角度理解本地變量的生命周期,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • mybatis-plus主鍵id生成、字段自動(dòng)填充的實(shí)現(xiàn)代碼

    mybatis-plus主鍵id生成、字段自動(dòng)填充的實(shí)現(xiàn)代碼

    這篇文章主要介紹了mybatis-plus主鍵id生成、字段自動(dòng)填充的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實(shí)現(xiàn)

    IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實(shí)現(xiàn)

    這篇文章主要介紹了IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2020-06-06
  • Java日志API管理最佳實(shí)踐詳解

    Java日志API管理最佳實(shí)踐詳解

    這篇文章主要介紹了Java日志API管理最佳實(shí)踐詳解,記錄日志只是有效地利用日志的第一步,更重要的是如何對(duì)程序運(yùn)行時(shí)產(chǎn)生的日志進(jìn)行處理和分析。,需要的朋友可以參考下
    2019-06-06
  • 深入理解Java8新特性之新日期時(shí)間API的應(yīng)用

    深入理解Java8新特性之新日期時(shí)間API的應(yīng)用

    自從 14 年發(fā)布 Java 8 以后,我們古老 java.util.Date 終于不再是我們 Java 里操作日期時(shí)間的唯一的選擇,其實(shí) Java 里的日期時(shí)間的相關(guān) API 一直為世猿詬病,今天我們來了解新的日期時(shí)間API是怎么使用吧
    2021-11-11
  • SpringBoot集成vue的開發(fā)解決方案

    SpringBoot集成vue的開發(fā)解決方案

    這篇文章主要介紹了SpringBoot集成vue的開發(fā)解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • IntelliJ IDEA maven 構(gòu)建簡(jiǎn)單springmvc項(xiàng)目(圖文教程)

    IntelliJ IDEA maven 構(gòu)建簡(jiǎn)單springmvc項(xiàng)目(圖文教程)

    在工作當(dāng)中,我們有時(shí)需要?jiǎng)?chuàng)建一個(gè)全新的工程,而基于spring-mvc web的工程較為常見,這篇文章主要介紹了IntelliJ IDEA maven 構(gòu)建簡(jiǎn)單springmvc項(xiàng)目(圖文教程),感興趣的小伙伴們可以參考一下
    2018-05-05

最新評(píng)論

巴青县| 兴仁县| 满洲里市| 灵寿县| 新建县| 潮州市| 科技| 南平市| 吉水县| 天津市| 新疆| 昭平县| 拉孜县| 靖州| 乐都县| 溆浦县| 盐城市| 嘉峪关市| 石狮市| 措勤县| 庆阳市| 靖边县| 黄浦区| 新昌县| 奇台县| 安岳县| 石泉县| 赫章县| 合江县| 竹溪县| 黎平县| 滨海县| 松原市| 瑞昌市| 随州市| 唐河县| 博白县| 临邑县| 嘉荫县| 会理县| 奇台县|