用java编写日历添加窗口,java 日历控件
本文实例为大家分享了爪哇实现窗体程序显示日历的具体代码,供大家参考,具体内容如下
实训要求:
1.使用边界布局进行总体布局
2.在北位置放置包含两个按钮(上月和下月)的面板
3.在南方位置放置一个标签用于显示当前年份和月份
4.在中心位置放置一个显示日历的面板
5.显示日历的面板设置7 行7 列的网格布局布局,其中第数字一(一)行放置7个按钮显示周"几",其他6 行放置42 个标签用于显示期。
6.启动程序时日历中默认显示当前月份的日历。
7.点击"上月"和"下月"可翻看上个月和下个月的日历。
8.程序运行结果如下图:
代码:
CalendaBean.java
导入Java。awt。事件。动作事件;导入Java。awt。事件。动作监听器;导入Java。util。日历;导入javax。挥棒。*;公共类日历豆实现操作侦听器{ JLabel[]标签;JLabel now字符串[]天;int year=0,month=0;public void setYear(int year){ this。年份=年份;} public void set month(int month){ this。月=月;} public void action performed(action event e){ String str=e . getactioncommand();如果(字符串。等于(上个月){ month-;if(month==0){ month=12;年份-;} } else if(str。等于(下个月){ monthif(month==13){ month=1;年份;} } now.setText(日历: 年年月份月);string[]a=get calendar();for(int I=0;我是洛杉矶人。长度;标签[i].setText( a[I]);} } 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 < weekDay + day; i++) { a[i] = String.valueOf(n); n++; } for (int i = weekDay + day; i < a.length; i++) a[i] = " "; return a; }}Test.java
import java.awt.*;import java.awt.event.*; import javax.swing.*; public class Test extends JFrame { JButton b1, b2, b3, b4, b5, b6, b7, bx, by; CalendaBean cb = new CalendaBean(); JLabel[] label; JLabel now; 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() { int year, month; setLayout(new BorderLayout()); JPanel pNorth = new JPanel(); cb = new CalendaBean(); cb.setYear(2017); cb.setMonth(11); String[] a = cb.getCalendar(); bx = new JButton("上月"); by = new JButton("下月"); bx.setActionCommand("lastmonth"); by.setActionCommand("nextmonth"); bx.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cb.actionPerformed(e); } }); by.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cb.actionPerformed(e); } }); pNorth.add(bx); pNorth.add(by); add(pNorth, BorderLayout.NORTH); GridLayout grid = new GridLayout(7, 7); JPanel pCenter = new JPanel(); b1 = new JButton("日"); b2 = new JButton("一"); b3 = new JButton("二"); b4 = new JButton("三"); b5 = new JButton("四"); b6 = new JButton("五"); b7 = new JButton("六"); pCenter.add(b1); pCenter.add(b2); pCenter.add(b3); pCenter.add(b4); pCenter.add(b5); pCenter.add(b6); pCenter.add(b7); label = new JLabel[42]; for (int i = 0; i < 42; i++) { label[i] = new JLabel(); pCenter.add(label[i]); } cb.label = this.label; for (int i = 0; i < a.length; i++) { label[i].setText(" "+a[i]); } pCenter.setLayout(grid); add(pCenter, BorderLayout.CENTER); JPanel pSouth = new JPanel(); now = new JLabel(); now.setText("日历:" + cb.year + "年" + cb.month + "月"); cb.now = now; pSouth.add(now); add(pSouth, BorderLayout.SOUTH); } }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。