Java基础之GUI

您所在的位置:网站首页 简单的天气日历制作 Java基础之GUI

Java基础之GUI

2024-06-03 09:00| 来源: 网络整理| 查看: 265

在学习了张老师的(GUI)视频后,自己跟个书上的例子做了个日历

分析:

1、通过继承JFrame类,把图形日历实现一个窗口;

2、通过实现ActionListener接口是的窗口本身能处理用户单击窗口中按钮的事件;

3、使用下拉列表框JComboBox存放年份和月份;

4、通过JButton实现"查看"和“今天”按钮,addListener方法为按钮注册时间处理器是,当按钮被单击时,由事件处理器响应;

5、用一个面板JPanel显示日期信息,面板中放多个按钮,每个按钮代表一个日期;

6、日期面板中的界面布局使用GridLayout(网格布局管理器),把面板分成多个规则的网格,将日期按钮顺序放在网格上;

7、窗口的界面布局使用BorderLayout(边界布局管理器),将窗口分成南、北、东、西和中5个方向,将组件放在窗口上;

8、使用Java.util.GregorianCalendar类计算日期、星期和闰月。

代码:

(代码有点多,不好意思漏了好多注释,大家包涵啦)

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import java.util.GregorianCalendar; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class CalendarTrain extends JFrame implements ActionListener{ //月份和年份下拉 列表框 private JComboBox MonthBox = new JComboBox(); private JComboBox YearBox = new JComboBox(); //年份月份标签 private JLabel YearLabel = new JLabel("年份:"); private JLabel MonthLabel = new JLabel("月份:"); //确定和今天按钮 private JButton button_ok = new JButton("查看"); private JButton button_today = new JButton("今天"); //获取今天的日期、年份和月份 private Date now_date = new Date(); private int now_year = now_date.getYear() + 1900; private int now_month = now_date.getMonth(); private boolean todayFlag = false; //用一组按钮显示日期,一共7行7列。第一行是星期 private JButton[] button_day = new JButton[42]; private final String[] week = {"SUN","MON","TUE","WEN","THR","FRI","SAT"}; private JButton[] button_week = new JButton[7]; private String year_int = null; private int month_int; /*构造函数*/ public CalendarTrain(){ super(); this.setTitle("日历"); this.init(); this.setLocation(500, 300); this.setResizable(false); pack(); } //初始化日历 private void init() { Font font = new Font("Dialog",Font.BOLD,16); YearLabel.setFont(font); MonthLabel.setFont(font); button_ok.setFont(font); button_today.setFont(font); //过去20年--未来20年 for(int i = now_year - 20;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3