用java编写日历添加窗口,java 日历控件_1

  用java编写日历添加窗口,java 日历控件

  本文实例为大家分享了爪哇实现窗体程序显示日历表的具体代码,供大家参考,具体内容如下

  

实训要求:

1.简单实现日历功能,能查看前月后月的日历功能。2.使用组建组件显示日历。

 

  

参考结果:

 

  代码:

  CalendaBean.java

  导入Java。util。日历;公共类日历{测试测试字符串[]天;int year=2017,month=7;public void setYear(int year){ this。年份=年份;} public void set month(int month){ this。月=月;} public int Last(){ month-;if(month==0){ month=12;年份-;}返回月份;}公共int Next(){ month;if(month==13){ month=1;年份;}返回月份;} public String[]get calendar(){ String[]a=new String[42];日历rili=日历。getinstance();rili.set(年,月- 1,1);int weekDay=rili.get(Calendar .星期几)-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) (年% 400==0))天=29;else day=28 } for(int I=0;英语字母表中第九个字母工作日;I)a[I]=" ";for (int i=weekDay,n=1;英语字母表中第九个字母工作日;I){ a[I]=字符串。(n)值;n;} for (int i=工作日;我是洛杉矶人。长度;I)a[I]=" ";返回a;}Change.java

  导入Java。awt。事件。动作事件;导入Java。awt。事件。动作监听器;导入javax。挥棒。jlabel公共类更改实现动作监听器{ calenda bean c;JLabel now测试测试;已执行公共void操作(操作事件e){ String str=e . getactioncommand();如果(字符串。equals(上月){ c . Last();} else if(str。equals(下个月){ c . Next();}测试. rili();now.setText(日历公元:年

  "年" + 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]);        }    }}

运行结果

 

  

 

  

 

  

 

  说明:这个程序与前几天上传的日历显示表差不多,只是改了中间的组件,原本以为是很简单的事,结果做的时候才发现其中的难点,初学Java还有很多不懂的地方,幸好有大神的解答,自己还有很多需要学习的地方。

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: