一个java Swing做的日历控件

合集下载

Java万年历源代码,可显示公历、农历、系统时间、国际时间

Java万年历源代码,可显示公历、农历、系统时间、国际时间

import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;import java.util.TimeZone;public class wannianli extends JFrame implements ActionListener, MouseListener {private Calendar cld = Calendar.getInstance();//获取一个Calendar类的实例对象private String[] astr = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };private DefaultTableModel dtm = new DefaultTableModel(null, astr);private JTable table = new JTable(dtm);private JScrollPane sp = new JScrollPane(table);private JButton bLastYear = new JButton("上一年");private JButton bNextYear = new JButton("下一年");private JButton bLastMonth = new JButton("上月");private JButton bNextMonth = new JButton("下月");private JPanel p1 = new JPanel(); // 设立八个中间容器,装入布局控制日期的按钮模块private JPanel p2 = new JPanel(new GridLayout(3,2));//网格布局private JPanel p3 = new JPanel(new BorderLayout());//边界布局private JPanel p4 = new JPanel(new GridLayout(2,1));private JPanel p5 = new JPanel(new BorderLayout());private JPanel p6 = new JPanel(new GridLayout(2,2));private JPanel p7 = new JPanel(new GridLayout(2,1));private JPanel p8 = new JPanel(new BorderLayout());private JComboBox timeBox = newJComboBox(TimeZone.getAvailableIDs());//对所有支持时区进行迭代,获取所有的id;private JTextField jtfYear = new JTextField(5);// jtfYeaar年份显示输入框private JTextField jtfMonth = new JTextField(2);// jtfMouth月份显示输入框private JTextField timeField=new JTextField();//各城市时间显示框private static JTextArea jta = new JTextArea(10,5);//农历显示区private JScrollPane jsp = new JScrollPane(jta);private JLabel l = new JLabel("花江小精灵:亲!你可以直接输入年月查询.");private JLabel lt = new JLabel();private JLabel ld = new JLabel();private JLabel lu = new JLabel("农历和节气");private JLabel null1=new JLabel();private int lastTime;//private String localTime = null;private String s = null;private SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年MM月dd 日 hh时mm分ss秒");public wannianli() {super("花江日历过去仅留追忆,未来刚生憧憬,唯有坚守本心,把握今天 ZYT 詹永堂 ");// 框架命名this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 窗口关闭函数this.getContentPane().setLayout(new BorderLayout(9, 10));jta.setLineWrap(true);// 长度大于分配长度时候则换行jta.setFont(new Font("黑体", Font.BOLD, 16));table.setBackground(Color.white);table.setGridColor(Color.pink);// 星期之间的网格线是灰色的table.setBackground(Color.white);table.setColumnSelectionAllowed(true);// 将table中的列设置为可选择的table.setSelectionBackground(Color.pink);// 当选定某一天时背景颜色为黑色table.setSelectionForeground(Color.GREEN);table.setBackground(new Color(184,207, 229));// 日期显示表格为浅蓝色table.setFont(new Font("黑体", Font.BOLD, 24));// 日期数字字体格式table.setRowHeight(26);// 表格的高度table.addMouseListener(this); // 鼠标监听器、lu.setFont(new Font("黑体", Font.BOLD, 22));//农历标签格氏jtfYear.addActionListener(this);// 可输入年份的文本框// 为各个按钮添加监听函数bLastYear.addActionListener(this);bNextYear.addActionListener(this);bLastMonth.addActionListener(this);bNextMonth.addActionListener(this);timeBox.addItemListener(new TimeSelectedChangedListener());// 将按钮添加到Jpane上p1.add(bLastYear);p1.add(jtfYear);// 年份输入文本框p1.add(bNextYear);p1.add(bLastMonth);p1.add(jtfMonth);p1.add(bNextMonth);p3.add(jsp, BorderLayout.SOUTH);p3.add(lu,BorderLayout.CENTER);p3.add(ld, BorderLayout.NORTH);p4.add(lt);p4.add(l);p5.add(p4, BorderLayout.SOUTH);p5.add(sp, BorderLayout.CENTER);p5.add(p1, BorderLayout.NORTH);p6.add(timeBox);p6.add(null1);p6.add(timeField);p8.add(p2,BorderLayout.CENTER);p8.add(p7,BorderLayout.SOUTH);this.getContentPane().add(p3, BorderLayout.EAST);this.getContentPane().add(p5, BorderLayout.CENTER);this.getContentPane().add(p6,BorderLayout.SOUTH);this.getContentPane().add(p8,BorderLayout.WEST);String[] strDate = DateFormat.getDateInstance().format(new Date()) .split("-");// 获取日期cld.set(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1]) - 1,0);showCalendar(Integer.parseInt(strDate[0]),Integer.parseInt(strDate[1]), cld);jtfMonth.setEditable(false);// 设置月份文本框为不可编辑jtfYear.setText(strDate[0]);jtfMonth.setText(strDate[1]);this.showTextArea(strDate[2]);ld.setFont(new Font("新宋体", Font.BOLD, 24));new Timer(lt).start();new TimeThread().start();this.setBounds(200, 200, 700, 350);this.setResizable(false);this.setVisible(true);}public void showCalendar(int localYear, int localMonth, Calendar cld) {int Days = getDaysOfMonth(localYear, localMonth) +cld.get(Calendar.DAY_OF_WEEK) -2;Object [] ai = new Object[7];lastTime = 0;for (int i = cld.get(Calendar.DAY_OF_WEEK)-1; i <= Days; i++) {ai[i%7] =String.valueOf(i-(cld.get(Calendar.DAY_OF_WEEK)-2));if (i%7 == 6){dtm.addRow(ai);ai = new Object[7];lastTime++;}}dtm.addRow(ai);}public int getDaysOfMonth(int Year, int Month) {//计算各月的天数if(Month==1||Month==3||Month==5||Month==7||Month==8||Month==10||Mont h==12){return 31;}if(Month==4||Month==6||Month==9||Month==11){return 30;}if(Year%4==0&&Year%100!=0||Year%400==0)//闰年{return 29;}else {return 28;}}public void actionPerformed(ActionEvent e)//从界面上获取年月数据{if(e.getSource() == jtfYear || e.getSource() == bLastYear || e.getSource() == bNextYear ||e.getSource() == bLastMonth || e.getSource() == bNextMonth){int m, y;try//控制输入的年份正确,异常控制{if (jtfYear.getText().length() != 4){throw new NumberFormatException();}y = Integer.parseInt(jtfYear.getText());m = Integer.parseInt(jtfMonth.getText());}catch (NumberFormatException ex){JOptionPane.showMessageDialog(this, "请输入4位0-9的数字!", "年份有误", JOptionPane.ERROR_MESSAGE);return;}ld.setText("没有选择日期");for (int i = 0; i < lastTime+1; i++){ dtm.removeRow(0);}if(e.getSource() ==bLastYear){ jtfYear.setText(String.valueOf(--y)); }if(e.getSource() ==bNextYear){jtfYear.setText(String.valueOf(++y)); }if(e.getSource() == bLastMonth){if(m == 1){jtfYear.setText(String.valueOf(--y));m = 12;jtfMonth.setText(String.valueOf(m));}else{jtfMonth.setText(String.valueOf(--m));}}if(e.getSource() == bNextMonth){if(m == 12){jtfYear.setText(String.valueOf(++y));m = 1;jtfMonth.setText(String.valueOf(m));}else{jtfMonth.setText(String.valueOf(++m));}}cld.set(y, m-1, 0);showCalendar(y, m, cld);}}public void mouseClicked(MouseEvent e){jta.setText(null);int r = table.getSelectedRow();int c = table.getSelectedColumn();if (table.getValueAt(r,c) == null){ld.setText("没有选择日期");}else{this.showTextArea(table.getValueAt(r,c));}}private void showTextArea(Object selected){ld.setText(jtfYear.getText()+"年"+jtfMonth.getText()+"月"+selected+"日");}public static void main(String[] args){JFrame.setDefaultLookAndFeelDecorated(true);JDialog.setDefaultLookAndFeelDecorated(true);new wannianli();jta.setText(today());}private void updateTimeText(String timeZoneId) {if(timeZoneId != null){TimeZone timeZone = TimeZone.getTimeZone(timeZoneId);dateFormat.setTimeZone(timeZone);Calendar calendar = Calendar.getInstance();calendar.setTimeZone(timeZone);timeField.setText(dateFormat.format(calendar.getTime()));}else{timeField.setText(null);}}private class TimeSelectedChangedListener implements ItemListener { public void itemStateChanged(ItemEvent e) {if (e.getStateChange()==ItemEvent.SELECTED) {if (e.getItem() instanceof String) {s = e.getItem().toString();}}}}private class TimeThread extends Thread{public void run(){while(true){updateTimeText(s);try{Thread.sleep(100);}catch(InterruptedException e){e.printStackTrace();}}}}class Timer extends Thread //显示系统时间{private JLabel lt;private SimpleDateFormat fy = new SimpleDateFormat(" Gyyyy.MM.dd HH:mm:ss ");public Timer(JLabel lt){this.lt=lt;}public void run(){while(true){try{lt.setText(fy.format(new Date()));this.sleep(500);}catch(InterruptedException ex){ex.printStackTrace();}}}}final private static long[] lunarInfo= new long[] { 0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554,0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0,0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550,0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0,0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263,0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0,0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5,0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960, 0x0d954, 0x0d4a0,0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9,0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0,0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520,0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0 };final private static int[] year20 = new int[] { 1, 4, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };final private static int[] year19 = new int[] { 0, 3, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };final private static int[] year2000 = new int[] { 0, 3, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };public final static String[] nStr1 = new String[] { "", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一","十二" };private final static String[] Gan = new String[] { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };private final static String[] Zhi = new String[] { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };private final static String[] Animals = new String[] { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" };// 传回农历 y年的总天数final private static int lYearDays(int y) {int i, sum = 348;for (i = 0x8000; i > 0x8; i >>= 1) {if ((lunarInfo[y - 1900] & i) != 0)sum += 1;}return (sum + leapDays(y));}// 传回农历 y年闰月的天数final private static int leapDays(int y) {if (leapMonth(y) != 0) {if ((lunarInfo[y - 1900] & 0x10000) != 0)return 30;elsereturn 29;} elsereturn 0;}// 传回农历 y年闰哪个月 1-12 , 没闰传回 0final private static int leapMonth(int y) {return (int) (lunarInfo[y - 1900] & 0xf);}//传回农历 y年m月的总天数final private static int monthDays(int y, int m) {if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)return 29;elsereturn 30;}// 传回农历 y年的生肖final public static String AnimalsYear(int y) {return Animals[(y - 4) % 12];}//传入月日的offset 传回干支,0=甲子final private static String cyclicalm(int num) {return (Gan[num % 10] + Zhi[num % 12]);}// 传入 offset 传回干支, 0=甲子final public static String cyclical(int y) {int num = y - 1900 + 36;return (cyclicalm(num));}// 传出农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6final private long[] Lunar(int y, int m) {long[] nongDate = new long[7];int i = 0, temp = 0, leap = 0;Date baseDate = new GregorianCalendar(1900 + 1900, 1,31).getTime();Date objDate = new GregorianCalendar(y + 1900, m, 1).getTime();long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;if (y < 2000)offset += year19[m - 1];if (y > 2000)offset += year20[m - 1];if (y == 2000)offset += year2000[m - 1];nongDate[5] = offset + 40;nongDate[4] = 14;for (i = 1900; i < 2050 && offset > 0; i++) {temp = lYearDays(i);offset -= temp;nongDate[4] += 12;}if (offset < 0) {offset += temp;i--;nongDate[4] -= 12;}nongDate[0] = i;nongDate[3] = i - 1864;leap = leapMonth(i); // 闰哪个月nongDate[6] = 0;for (i = 1; i < 13 && offset > 0; i++) {// 闰月if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) { --i;nongDate[6] = 1;temp = leapDays((int) nongDate[0]);} else {temp = monthDays((int) nongDate[0], i);}// 解除闰月if (nongDate[6] == 1 && i == (leap + 1))nongDate[6] = 0;offset -= temp;if (nongDate[6] == 0)nongDate[4]++;}if (offset == 0 && leap > 0 && i == leap + 1) {if (nongDate[6] == 1) {nongDate[6] = 0;} else {nongDate[6] = 1;--i;--nongDate[4];}}if (offset < 0) {offset += temp;--i;--nongDate[4];}nongDate[1] = i;nongDate[2] = offset + 1;return nongDate;}// 传出y年m月d日对应的农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6final public static long[] calElement(int y, int m, int d) {long[] nongDate = new long[7];int i = 0, temp = 0, leap = 0;Date baseDate = new GregorianCalendar(0 + 1900, 0, 31).getTime();Date objDate = new GregorianCalendar(y, m - 1, d).getTime();long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;nongDate[5] = offset + 40;nongDate[4] = 14;for (i = 1900; i < 2050 && offset > 0; i++) {temp = lYearDays(i);offset -= temp;nongDate[4] += 12;}if (offset < 0) {offset += temp;i--;nongDate[4] -= 12;}nongDate[0] = i;nongDate[3] = i - 1864;leap = leapMonth(i); // 闰哪个月nongDate[6] = 0;for (i = 1; i < 13 && offset > 0; i++) {// 闰月if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) { --i;nongDate[6] = 1;temp = leapDays((int) nongDate[0]);} else {temp = monthDays((int) nongDate[0], i);}// 解除闰月if (nongDate[6] == 1 && i == (leap + 1))nongDate[6] = 0;offset -= temp;if (nongDate[6] == 0)nongDate[4]++;}if (offset == 0 && leap > 0 && i == leap + 1) { if (nongDate[6] == 1) {nongDate[6] = 0;} else {nongDate[6] = 1;--i;--nongDate[4];}}if (offset < 0) {offset += temp;--i;--nongDate[4];}nongDate[1] = i;nongDate[2] = offset + 1;return nongDate;}public final static String getChinaDate(int day) { String a = "";if (day == 10)return"初十";if (day == 20)return"二十";if (day == 30)return"三十";int two = (int) ((day) / 10);if (two == 0)a = "初";if (two == 1)a = "十";if (two == 2)a = "廿";if (two == 3)a = "三";int one = (int) (day % 10);switch (one) {case 1:a += "一";break;case 2:a += "二";break;case 3:a += "三";break;case 4:a += "四";break;case 5:a += "五";break;case 6:a += "六";break;case 7:a += "七";break;case 8:a += "八";break;case 9:a += "九";break;}return a;}public static String today() {Calendar today = Calendar.getInstance(Locale.SIMPLIFIED_CHINESE);int year = today.get(Calendar.YEAR);int month = today.get(Calendar.MONTH) + 1;int date = today.get(Calendar.DATE);long[] l = calElement(year, month, date);StringBuffer sToday = new StringBuffer();try {sToday.append(sdf.format(today.getTime()));sToday.append(" \n");sToday.append(" \n");sToday.append(" \n");sToday.append(" 农历");sToday.append(cyclical(year));sToday.append('(');sToday.append(AnimalsYear(year));sToday.append(")年");sToday.append(" \n");sToday.append(" ");sToday.append(nStr1[(int) l[1]]);sToday.append("月");sToday.append(getChinaDate((int) (l[2])));return sToday.toString();} finally {sToday = null;}}private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年M月d日 EEEEE");public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) { }}。

JAVA编写日历实训心得

JAVA编写日历实训心得

班级:**** 姓名:*** 学号:****10010127java实验报告实验7 日历一、实验目的1. 掌握swt 的容器概念及使用方法。

2. 掌握swt 中的工具栏与菜单的使用方法。

3. 掌握swt 中的表格组件的使用。

4. 掌握swt 各种对话框的使用方法。

二、实验内容:简单日历系统的设计与实现。

三、实验步骤:1. 简单日历系统的设计与实现1) 创建java 类。

在“包资源管理器”中用鼠标右击项目“practical”,选择快捷菜单中“新建”→“visual class”;在打开的“new java visual class ”窗口中,“源文件夹”的默认值是项目的文件夹,不需要更改,“包”栏中输入程序包的名称“ch7”。

“名称”栏中输入类名“su”,在“style ”列表框中选择“swt”→“shell”,选中“public static void main(string[] args) ”复选框,使之自动创建一个main 方法,单击“完成”按钮,一个含有gui 程序界面以及代码的编辑器窗口被打开。

2) 添加组件。

用鼠标右键单击gui 程序界面的任何位置,在快捷菜单中选择“set layout”→“filllayout”。

在“palette”面板中用鼠标单击“swt containers ”中的“viewform”,在程序界面sshell 中添加viewform 容器viewform 。

从pallete 工具栏中依次单击组件:toolbar 和table ,在viewform 容器添加一个工具栏toolbar 和一个表格table ,并在工具栏toolbar 中添加4 个工具栏按钮toolitem~toolitem3;在表格中添加7 个表列tablecolumn~tablecolumn6 。

更改4 个工具栏按钮的text 属性分别为“上一年”、“上个月”、“下个月”和“下一年”;更改7 个表列的text 属性分别为“日”~“六”,如图下所示。

JavaSwing日历控件

JavaSwing日历控件

Java swing日历控件,界面精美,使用方便,能用于个人作品首先,声明一点,这个控件是我从一套据说价值九百多美元的swing类包中提取出来,并加以修改的,所以:
一,你不能把该控件用于任何商业产品中。

二,该控件没有源代码。

(DatePicker.java除外,这个是我加进去的)
三,该控件可以用于你的个人作品中。

截图如下:
使用之前请把datepicker.jar导入classpath中
使用方法如下:
DatePicker datepick = new DatePicker();
或者
datepick = new DatePicker(date,DefaultFormat,font,dimension);//自定义参数值
//各参数含义如下
//参数1 设置该控件的初始值(可选)
//参数2 设置日期的格式(可选)
//参数3 设置该控件的字体(可选)
//参数3 设置该控件的大小(可选)
//该控件继承自JComponent ,它继承了Jcomponent的属性
datepick.setTimePanleVisible(true);//设置时钟面板可见
atepick.setHightlightdays(hilightDays, Color.red);//设置一个月份中需要高亮显示的日子
datepick.setDisableddays(disabledDays);//设置一个月份中不需要的日子,呈灰色显示。

java日历小程序

java日历小程序

java日历小程序简介:Java日历小程序是一个基于Java语言开发的工具,用于显示和管理日期和时间。

它提供了一种简单而直观的方式来查看、创建和编辑日历事件,并提供了一些额外的功能,如提醒、重复事件和时间段的计算等。

本文将详细介绍Java日历小程序的功能、使用方法和设计原理。

功能:1. 显示日历:Java日历小程序可以显示当前月份的日历,并以日、周或月的形式展示。

用户可以通过界面上的上下翻页按钮切换月份,方便查看不同日期的日历。

2. 创建和编辑事件:用户可以通过Java日历小程序创建新的日历事件,并为每个事件指定标题、日期、时间和地点等详细信息。

程序还提供了事件编辑功能,允许用户修改已有事件的信息。

3. 提醒功能:Java日历小程序可以设置事件的提醒功能,提醒用户在指定的时间前提醒。

用户可以选择在事件开始前几分钟、几小时或几天提醒,并可以自定义提醒方式,如弹窗、声音或邮件通知等。

4. 重复事件:用户可以为事件设置重复功能,使事件在指定的日期间隔内重复发生。

可以选择每天、每周、每月或每年重复,并可以设置重复的结束日期。

5. 时间段计算:Java日历小程序可以计算两个日期之间的时间段,如计算两个事件之间的天数、小时数或分钟数等。

用户可以选择计算方式,并获取精确的时间段结果。

使用方法:1. 下载和安装:用户可以从官方网站上下载Java日历小程序的安装包,然后按照安装向导进行安装。

安装完成后,用户可以在桌面或开始菜单中找到程序的快捷方式。

2. 打开程序:双击程序的快捷方式,Java日历小程序将启动并显示当前月份的日历。

用户可以通过界面上的按钮和菜单来使用各种功能。

3. 创建事件:用户可以点击界面上的“添加事件”按钮,弹出一个对话框,输入事件的详细信息,如标题、日期、时间和地点等。

点击“确定”按钮后,事件将被创建并显示在日历上。

4. 编辑事件:用户可以在日历上点击已有的事件,弹出一个对话框,允许用户修改事件的信息。

java swing开发案例

java swing开发案例

java swing开发案例1. 计算器应用程序该应用程序使用Java Swing开发,实现了一个简单的计算器功能。

用户可以输入数字和运算符,并通过按下相应的按钮来执行计算操作。

应用程序会将计算结果显示在屏幕上,并允许用户清除当前计算或进行新的计算。

2. 学生成绩管理系统该应用程序使用Java Swing开发,可以帮助学校或老师管理学生的成绩信息。

用户可以添加新的学生、编辑学生信息、输入学生成绩,并可以通过查询功能来查找特定学生的成绩。

应用程序还可以生成成绩报告,以便用户进行分析和评估。

3. 文件浏览器这个应用程序使用Java Swing开发,模拟了一个简单的文件浏览器。

用户可以浏览计算机上的文件和文件夹,并可以通过点击相应的按钮来打开或删除文件。

应用程序还提供了搜索功能,以便用户可以快速找到所需的文件。

4. 图片编辑器这个应用程序使用Java Swing开发,可以帮助用户编辑和处理图片。

用户可以打开图片文件、调整亮度、对比度和饱和度,并可以进行裁剪、旋转和缩放操作。

应用程序还提供了一些滤镜效果,如黑白、模糊和怀旧效果。

5. 音乐播放器这个应用程序使用Java Swing开发,可以帮助用户播放本地音乐文件。

用户可以选择音乐文件并通过点击播放按钮来播放音乐。

应用程序还提供了控制音乐播放的功能,如暂停、停止和调整音量。

6. 电子邮件客户端这个应用程序使用Java Swing开发,可以帮助用户发送和接收电子邮件。

用户可以登录到他们的电子邮件账户,并可以编写和发送电子邮件。

应用程序还可以从服务器上接收新的电子邮件,并将它们显示在收件箱中。

7. 聊天应用程序这个应用程序使用Java Swing开发,可以帮助用户进行在线聊天。

用户可以登录到他们的聊天账户,并可以与其他在线用户进行实时聊天。

应用程序还提供了一些附加功能,如发送文件和创建群聊。

8. 天气预报应用程序这个应用程序使用Java Swing开发,可以帮助用户获取实时天气信息。

calendarview 用法

calendarview 用法

calendarview 用法CalendarView 是一个展示日历的控件,可以通过在布局文件中使用<CalendarView>标签来添加。

同时还可以通过代码来动态设置属性和监听事件。

以下是一些常用方法和属性的使用方法:1. 设置选中日期的最小值和最大值:```javaCalendarView calendarView = findViewById(R.id.calendarView); calendarView.setMinDate(minDate.getTime()); // 设置最小日期calendarView.setMaxDate(maxDate.getTime()); // 设置最大日期```2. 监听日期选中事件:```javaCalendarView calendarView = findViewById(R.id.calendarView); calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {@Overridepublic void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {// 处理选中日期的逻辑}});```3. 设置是否显示周数:```javaCalendarView calendarView = findViewById(R.id.calendarView); calendarView.setShowWeekNumber(true); // 显示周数calendarView.setShowWeekNumber(false); // 不显示周数```4. 设置选中日期的背景色:```javaCalendarView calendarView = findViewById(R.id.calendarView);// 自定义选中日期的背景calendarView.setDateTextAppearance(R.style.SelectedDateStyle);// 或者使用系统默认的选中背景calendarView.setDateTextAppearance(android.R.style.TextAppear ance_DeviceDefault_Widget_DatePicker_Day_Selected);```5. 获取当前选中的日期:```javaCalendarView calendarView = findViewById(R.id.calendarView); long selectedDate = calendarView.getDate(); // 获取当前选中的日期,单位为毫秒```这些只是 CalendarView 的一些常用方法和属性,还有其他一些属性和方法可以根据需要进行查阅和使用。

Java Swing打印指定日期的日历

Java Swing打印指定日期的日历
打印指定日期的日历
/********************************************************** * 文件名: CalendarSFW.java * Copyright (c) 2008-2009 计算机专业教研室 * 文件编号: * 创 建 人: 孙丰伟 * 日 期: 2008-4-8 * 修 改 人: * 日 期: * 描 述: 保存CalendarSFW类.演示输入指定的日期,打印此月的日历. * ********************************************************/ package calendar;
* 日 期: 2008-4-6
* 方 法: isLeapYear 判断是否为闰年
*
getDaysOfMonth 根据指定的年与月,返回当月的天数
*
printCalendar 根据日期打印日历
************************************************************/
sbuilder.append("\t\t").append(format.format(calendar.getTime())).ap pend("\n");
System.out.println(sbuilder); System.out.println("日\t一\t二\t三\t四\t五\t六"); System.out
public class Program {
public static void main(String[] args) { CalendarSFW.printCalendar(2008,2,1); //4月1日

jdatepicker用法

jdatepicker用法

jdatepicker用法JDatePicker 是一个Java Swing 库,用于创建日期选择器的UI组件。

它是对JCalendar的封装,提供了更方便的日期选择功能。

下面是JDatePicker的用法:2. 创建JDatePicker对象:首先,你需要在你的代码中引入JDatePicker类,然后可以通过下面的代码创建一个JDatePicker对象:```javaUtilDateModel model = new UtilDateModel(;JDatePanel datePanel = new JDatePanel(model);JDatePicker datePicker = new JDatePicker(datePanel);```这里的`UtilDateModel`是一个提供日期管理功能的类,`JDatePanel`是一个提供日期面板的类,传入`UtilDateModel`对象作为参数。

最后,通过`JDatePicker`类的构造函数传入`JDatePanel`对象创建一个JDatePicker实例。

3. 添加日期选择监听器:你可以为JDatePicker添加一个日期选择监听器,当用户选择一个日期时触发相应的操作。

下面是一个例子:```javadatePicker.addActionListener(e ->Date selectedDate = (Date) datePicker.getModel(.getValue(;SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");String dateString = format.format(selectedDate);System.out.println("Selected date: " + dateString);});```在这个例子中,我们使用了Lambda表达式来创建一个动作监听器,当用户选择一个日期时,`getValue(`方法返回选中的日期,并转换为字符串形式。

swing日期控件

swing日期控件

Swing日期控件一、截图:二、源代码:package com.longtu.rpt.app.view.rptview.multisheet;import java.util.Calendar;import javax.swing.JComboBox;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;public class DateChoiceActive {//初始化年选择下拉框public static String[] initItemsYear(){String[] arrYear = new String[70];for(int i=1980;i<2050;i++){arrYear[i-1980]=String.valueOf(i);}return arrYear;}//初始化月选择下拉框public static void initItemsMonth(JComboBox cmbMonth){cmbMonth.addItem("一月");cmbMonth.addItem("二月");cmbMonth.addItem("三月");cmbMonth.addItem("四月");cmbMonth.addItem("五月");cmbMonth.addItem("六月");cmbMonth.addItem("七月");cmbMonth.addItem("八月");cmbMonth.addItem("九月");cmbMonth.addItem("十月");cmbMonth.addItem("十一月");cmbMonth.addItem("十二月");}public static String initComboboxSelected(int month){if(1 == month){return "一月";}else if(2 == month){return "二月";}else if(3 == month){return "三月";}else if(4 == month){return "四月";}else if(5 == month){return "五月";}else if(6 == month){return "六月";}else if(7 == month){return "七月";}else if(8 == month){return "八月";}else if(9 == month){return "九月";}else if(10 == month){return "十月";}else if(11 == month){return "十一月";}else {return "十二月";}}public static int getSelectItemValue(String month){if("一月".equals(month)){return 1;}else if("二月".equals(month)){return 2;}else if("三月".equals(month)){return 3;}else if("四月".equals(month)){return 4;}else if("五月".equals(month)){return 5;}else if("六月".equals(month)){return 6;}else if("七月".equals(month)){return 7;}else if("八月".equals(month)){return 8;}else if("九月".equals(month)){return 9;}else if("十月".equals(month)){return 10;}else if("十一月".equals(month)){return 11;}else if("十二月".equals(month)){return 12;}return 0;}private static int getCurrentMonthFirstDay(int year,int month){ Calendar now = Calendar.getInstance();now.set(year,month-1,1);int week = now.get(Calendar.DAY_OF_WEEK)-1;return week;}private static int getCurrentMonthDays(int year,int month){int days = 0; // 存储当月的天数boolean isRn = false;//是否闰年for (int i = 1900; i < year; i++) {if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) {isRn = true;} else {}}for (int i = 1; i <= month; i++) {switch (i) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:days = 31;break;case 2:if (isRn) {days = 29;} else {days = 28;} break;default:days = 30; break;}}return days;}public static void updateMonthPanel(JTable table,DefaultTableModel model,int year,int month,Object[] rowData){int week = getCurrentMonthFirstDay(year,month);int totalday = getCurrentMonthDays(year,month);int count = 1;for(int i=0;i<6;i++){model.addRow(rowData);for(int j=0;j<7;j++){if(count>totalday){table.setValueAt("", i, j);}else if(i==0&&week!=0){j = week;table.setValueAt(count, i, j);}else{table.setValueAt(count, i, j);}week = 0;count++;}}}public static String formatDateToString(int year,int month,int date){String day = "";String mon = "";if(date < 10){day = "0"+date;}else{day = ""+date;}if(month < 10){mon = "0"+month;}else{mon = ""+month;}return year+"-"+mon+"-"+day;}}package com.longtu.rpt.app.view.rptview.multisheet;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Point;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.BorderFactory;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JDialog;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSpinner;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SpinnerListModel;import javax.swing.SpinnerModel;import javax.swing.SwingUtilities;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import javax.swing.table.DefaultTableModel;import com.longtu.rpt.app.Main;public class DateChoiceControl extends JPanel{private static final long serialVersionUID = 287167130044293034L;public JTextField text;private JButton btn;private JButton btnLeft;private JButton btnRight;private JButton today;private JButton clear;private Object[] rowData = new Object[7];private JComboBox cmbMonth;private JSpinner spinYear;private JPanel content;private JPanel toolbar;private JPanel center;private JPanel bottom;private JTable table;private JDialog dialog;private Container owner;private int years;private int month;private int width = 220; //日期控件的宽度private int height = 200; //日期控件的高度private DefaultTableModel model = new DefaultTableModel() {private static final long serialVersionUID =-6721045359549509763L;@Overridepublic boolean isCellEditable(int row, int column) {return false;}};public DateChoiceControl(String name, int year,int mon){years = year;month = mon;BorderLayout b = new BorderLayout();this.setLayout(b);text = new JTextField();text.setPreferredSize(new Dimension(76,20));text.setEditable(false);this.add(text,b.WEST);btn = new JButton(null,newImageIcon(Main.class.getResource("/icons/dialog.png")));btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(JDialog.isDefaultLookAndFeelDecorated()){JDialog.setDefaultLookAndFeelDecorated(false);}Frame owner = (Frame) SwingUtilities.getWindowAncestor(DateChoiceControl.this);Rectangle r = text.getBounds();Point pOnScreen = text.getLocationOnScreen();Point result = new Point(pOnScreen.x, pOnScreen.y +r.height);Point powner = owner.getLocation();int offsetX = (pOnScreen.x + width)- (powner.x +owner.getWidth());int offsetY = (pOnScreen.y + r.height + height)- (powner.y +owner.getHeight());if (offsetX > 0) {result.x -= offsetX;}if (offsetY > 0) {result.y -= height + r.height;}dialog = new JDialog();dialog.setModal(false);dialog.setUndecorated(true);dialog.setResizable(true);dialog.setLocation(result);dialog.setSize(width, height);dialog.addWindowListener(new WindowAdapter() {//在任意的非日期选择区单击,则日期选择组件将变为非活动状态,自动释放资源。

java万年历源代码(可运行)

java万年历源代码(可运行)
private JTable table = new JTable(dtm); //装日期的表格
private JScrollPane sp = new JScrollPane(table);
private JButton bLastYear = new JButton("上一年");
p3.add(jsp, BorderLayout.CENTER);
p3.add(p2, BorderLayout.SOUTH);
p3.add(ld, BorderLayout.NORTH);
private JTextArea jta = new JTextArea(); //jta--JTextArea
private JScrollPane jsp = new JScrollPane(jta);
private JLabel l = new JLabel("年份文本框中可直接键入要查找的年份,以提高查询效率");
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
//import java.sql.Date;
cld.set(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1])-1, 0);
showCalendar(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1]), cld);

使用Java创建简单的日历应用程序

使用Java创建简单的日历应用程序

使用Java创建简单的日历应用程序-一个实战教程日历应用程序是一个有用的工具,它允许用户记录和管理事件、约会和提醒。

在这个实战博客中,我们将创建一个Java日历应用程序,演示如何使用Java编程语言和图形用户界面(GUI)库来实现事件管理和日期选择功能。

以下是本实战博客的主要内容:项目概述准备工作创建Java项目设计GUI界面实现日历视图添加事件管理功能总结让我们开始吧!1. 项目概述在本项目中,我们将创建一个简单的Java日历应用程序,它包括以下主要功能:显示日历界面,允许用户选择日期。

在日历中标记已经安排的事件和约会。

允许用户添加、编辑和删除事件。

提供事件的日期和时间提醒功能。

我们将使用Java编程语言和Swing GUI库来构建这个日历应用程序。

2. 准备工作在开始之前,确保您的开发环境已设置好。

我们将使用Java编程语言和Swing库来构建日历应用程序,不需要额外的工具或库。

3. 创建Java项目首先,创建一个新的Java项目,您可以使用任何Java集成开发环境(IDE)来完成此操作。

在项目中,我们将创建Java类来实现日历应用程序。

4. 设计GUI界面我们将创建一个简单的Swing GUI界面,用于显示日历界面和事件列表。

创建一个Java类,例如CalendarApp,并在其中创建GUI界面。

javaCopy codeimport javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import java.util.Date;public class CalendarApp {private JFrame frame;private JPanel calendarPanel;private JPanel eventPanel;private JTextArea eventList;private JButton addButton;private JButton editButton;private JButton deleteButton;public CalendarApp() {frame = new JFrame("日历应用程序");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(800, 600);frame.setLayout(new BorderLayout());calendarPanel = new JPanel(new BorderLayout());eventPanel = new JPanel(new BorderLayout());eventList = new JTextArea();eventList.setEditable(false);JScrollPane eventScrollPane = new JScrollPane(eventList);addButton = new JButton("添加事件");editButton = new JButton("编辑事件");deleteButton = new JButton("删除事件");eventPanel.add(eventScrollPane, BorderLayout.CENTER);eventPanel.add(addButton, BorderLayout.NORTH);eventPanel.add(editButton, BorderLayout.WEST);eventPanel.add(deleteButton, BorderLayout.EAST);frame.add(calendarPanel, BorderLayout.WEST);frame.add(eventPanel, BorderLayout.CENTER);addButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {addEvent();}});editButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {editEvent();}});deleteButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {deleteEvent();}});frame.setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(() -> new CalendarApp());}private void addEvent() {// 实现添加事件的代码,略...}private void editEvent() {// 实现编辑事件的代码,略...}private void deleteEvent() {// 实现删除事件的代码,略...}}在上述代码中,我们创建了一个CalendarApp类,包括一个Swing窗口、日历界面和事件列表。

windows日历时钟课程设计

windows日历时钟课程设计
else{
arr[count]=new JButton(start+"");
add(arr[count]);
if(start<15) arr[count].setBackground(Color.green);
else arr[count].setBackground(Color.pink);
add(new JButton("三"));
add(new JButton("五"));
add(new JButton("六"));
//由于四十二个按钮中有些按钮上的日期为上个月或下个月的日期,所以将
//第一行和最后一行上按钮的值单独赋值
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
now_day_num=31;
else if(month==4||month==6||month==9||month==11)
now_day_num=29;
else now_day_num=28;
if(Nmonth2==1||Nmonth2==3||Nmonth2==5||Nmonth2==7||Nmonth2==8||Nmonth2==10||Nmonth2==12)
last_day_num=31;
public DrawCalendar()
{
//指出当前年数
year=2000+year;
month2=month-1;
//设置布局管理器
setLayout(new GridLayout(8,7));

java万年历程序代码

java万年历程序代码

package pack;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import java.util.Date;public class rili extends JFrame implements ActionListener { JButton b_today, b_query;JLabel lb_Year, lb_Month;JButton b_week[] = new JButton[7];JButton b_day[][] = new JButton[6][7];Container thisContainer;JPanel pUp;JPanel pCenter;JPanel pCenter_week, pCenter_day;JComboBox year, month;public void init() {b_today = new JButton("Today");b_query = new JButton("Query");setTitle("日历");lb_Year = new JLabel("Year");lb_Month = new JLabel("Month");year = new JComboBox();month = new JComboBox();setDate();pUp = new JPanel();pUp.add(lb_Year);pUp.add(year);pUp.add(lb_Month);pUp.add(month);pUp.add(b_today);pUp.add(b_query);b_today.addActionListener(this);b_query.addActionListener(this);pCenter = new JPanel();pCenter_week = new JPanel();b_week[0] = new JButton("星期日");b_week[1] = new JButton("星期一");b_week[2] = new JButton("星期二");b_week[3] = new JButton("星期三");b_week[4] = new JButton("星期四");b_week[5] = new JButton("星期五");b_week[6] = new JButton("星期六");b_week[0].setSize(400, 200);b_week[1].setSize(400, 200);b_week[2].setSize(400, 200);b_week[3].setSize(400, 200);b_week[4].setSize(400, 200);b_week[5].setSize(400, 200);b_week[6].setSize(400, 200);for (int i = 0; i < 7; i++) {b_week[i].setEnabled(false);pCenter_week.add(b_week[i]);}pCenter_day = new JPanel();for (int cols = 0; cols < 6; cols++) {for (int rows = 0; rows < 7; rows++) {b_day[cols][rows] = new JButton("");b_day[cols][rows].setSize(400, 200);this.pCenter_day.add(b_day[cols][rows]);}}pCenter_day.setLayout(new GridLayout(6, 7));setDay(Integer.parseInt(this.year.getSelectedItem().toString()),Integer.parseInt(this.month.getSelectedItem().toString()));// setDay(2011,2);pCenter.setLayout(new BorderLayout());pCenter.add(pCenter_week, "North");pCenter.add(pCenter_day, "Center");thisContainer = this.getContentPane();thisContainer.setLayout(new BorderLayout());thisContainer.add(pUp, "North");thisContainer.add(pCenter, "Center");this.setVisible(true);this.setResizable(false);this.pack();}public void setDate() {int year, month, day, week;Calendar cal = Calendar.getInstance();year = cal.get(Calendar.YEAR);month = cal.get(Calendar.MONTH);day = cal.get(Calendar.DA TE);week = cal.get(Calendar.WEEK_OF_YEAR);int year_temp = year - 4;for (int i = 0; i < 10; i++) {this.year.addItem(year_temp);year_temp += 1;}this.year.setSelectedIndex(4);for (int n = 0; n < 12; n++) {this.month.addItem(n + 1);}this.month.setSelectedIndex(month);}public void setDay(int Year, int Month) {int count;Calendar c = Calendar.getInstance();c.clear();c.set(Year, Month-1, 1);count = c.getActualMaximum(Calendar.DAY_OF_MONTH); // 总天数System.out.print(count);int day = c.get(Calendar.DAY_OF_WEEK) - 1; // 0为星期天,6为星期六System.out.print(day);int i = 1 - day;for (int cols = 0; cols < 6; cols++) {for (int rows = 0; rows < 7; rows++) {String st = String.valueOf(i);b_day[cols][rows].setText(st);b_day[cols][rows].setEnabled(false);if (i > 0 && i <= count)b_day[cols][rows].setVisible(true);elseb_day[cols][rows].setVisible(false);i++;}}}public void actionPerformed(ActionEvent e) {if (e.getSource() == b_query) {this.setDay(Integer.parseInt(this.year.getSelectedItem().toString()), Integer.parseInt(this.month.getSelectedItem().toString()));}if (e.getSource() == b_today) {int year, month;Calendar cal = Calendar.getInstance();year = cal.get(Calendar.YEAR);month = cal.get(Calendar.MONTH)+1;this.setDay(year,month);}}public static void main(String[] args) {rili rl = new rili();rl.init();}}。

java日历之GUI界面化

java日历之GUI界面化

public void mouseClicked(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public static void main(String args[]) { Calendar calendar=Calendar.getInstance(); int y=calendar.get(Calendar.YEAR); int m=calendar.get(Calendar.MONTH)+1; int d=calendar.get(Calendar.DAY_OF_MONTH); new CalendarPad(y,m,d); } }
} for(int i=0;i<星期几;i++) { showDay[i].setText(""); } for(int i=星期几+月天数;i<42;i++) { showDay[i].setText(""); }
} if(i%7==0) { showDay[i].setForeground(Color.red); } n++;
} public void 排列号码(int 星期几,int 月天数) { for(int i=星期几,n=1;i<星期几+月天数;i++) { showDay[i].setText(""+n); if(n==day) { showDay[i].setForeground(Color.green); showDay[i].setFont(new Font("TimesRoman",Font.BOLD,20)); } else { showDay[i].setFont(new Font("TimesRoman",Font.BOLD,12)); showDay[i].setForeground(Color.black); } if(i%7==6) { showDay[i].setForeground(Color.blue);

日程安排管理系统

日程安排管理系统

JA V A日程安排管理系统题目:日程安排管理系统班级:小组成员:指导教师:成绩:2014年5月一、任务描述本次任务要求完成一个小型个人日程管理系统。

该日程管理系统能够在装有java语言运行环境的windows操作系统下运行。

它以图形用户界面显示,界面上有一个简单的电子日历,便于用户选择记录日程的日期,用户可以在组合框中选择日程提醒时间,文本区域中记录日程,具体要求如下:(一)日程录入功能:用户可以选择具体的某一天,设定何时提醒用户(也可以不设时间,这样就不会出现消息提醒框),并编辑日程的具体内容。

用户可以添加和删除这一天的日程提醒信息。

(二)定时提醒功能:当某一天有日程时,在日历上该天的背景色为洋红色,当系统时间和提醒时间相吻合时,会给出具有提示信息的对话框。

(三)显示日历功能:界面上有一个电子日历,用户可以通过输入年份和月份来查看某一年某一月的日期以及从日历上可以看出当月所有有日程的日期。

(四)查询和修改日程功能:用户可以通过输入具体的年月,找到当月日历,并通过点击日历中显示的背景色为洋红色的日期来查询和修改这一天的所有日程。

(五)保存和清除日程功能:设置清除和保存按钮,分别用于清除日程记录和保存日程记录,日程记录以文本形式保存,文件名为设定日程的年月日。

(六)要求使用Java里的图形用户界面技术和文件读写技术。

(七)运行环境为Windows操作系统下的JCreator编辑器。

二、系统概要设计(一)功能模块图(二)调用的组件和方法功能介绍 (1)组件1.JFrame (框架)功能:将其他组件添加到JFrame 框架中,把它们组织起来,并把它们以图 形的形式呈现给用户。

2.JDesktopPane (桌面容器)功能:用于创建多文档界面或虚拟桌面。

3.JButton (按钮)功能:生成按钮组件,在本系统中有三个按钮,分别用于清除、保存和 查询日程记录。

4.JLabel(标签) 功能:生成标签组件。

时钟计时器使用Java语言和Swing界面库开发的小程序

时钟计时器使用Java语言和Swing界面库开发的小程序

时钟计时器使用Java语言和Swing界面库开发的小程序时钟计时器是一款使用Java语言和Swing界面库开发的小程序,它可以以时、分、秒的形式显示当前时间,并可以进行计时功能。

本文将介绍该小程序的开发过程,并分享一些有关Java语言和Swing界面库的知识。

一、程序开发环境搭建要使用Java语言和Swing界面库进行开发,首先需要安装Java开发工具包(JDK)和集成开发环境(IDE)。

在安装完成后,创建一个新的Java项目,并导入Swing库。

二、界面设计首先,我们需要设计一个界面来展示时钟和计时功能。

可以使用Swing库提供的组件来创建窗体、标签、按钮等。

1. 窗体设计在主类中创建一个窗体对象,设置标题、尺寸和布局等属性。

并将时钟和计时功能的组件添加到窗体中。

```javaJFrame frame = new JFrame("时钟计时器");frame.setSize(400, 300);frame.setLayout(new BorderLayout());```2. 时钟设计使用标签组件来显示当前时间。

可以使用Java提供的日期和时间类(如Date和Calendar)来获取当前时间,并将其格式化后设置为标签的文本。

```javaJLabel clockLabel = new JLabel();frame.add(clockLabel, BorderLayout.CENTER);// 获取当前时间Date now = new Date();SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");String time = sdf.format(now);// 设置标签文本clockLabel.setText(time);```3. 计时功能设计为计时功能设计按钮组件,并添加监听事件。

在按钮的监听器中,通过定时器类(如Timer)来实现每秒更新计时器的功能。

日历记事本

日历记事本

课程设计报告课程:面向对象程序设计学号:姓名:班级:计算机科学与技术2班教师:钱田芬时间: 2014年12月23日计算机学院(3)Month类,如表2-3所示:主要成员变量(属性)成员变量描述月月份显示按钮日历表变量类型intJTextFieldJButtonCalendarPad名称monthShowMonthbeforeMont、afterMonthcalendarpad表2-3:Month类表(4)NotePad类,如表2-3所示:主要成员变量(属性)成员变量描述变量类型名称文本输入区年、月、日按钮哈希表文本框日历表JTextAreaintJButtonHashtableJLabelCalendarPadtextYear、month、daySave、delete、queryhashtablelabelTextcalendarpad4.4测试与分析(1)初始化日历记事本页面如图3-1:图3-1:初始化日历记事本界面(2)向上翻年如图3-2所示:图3-2:向上翻年(3)向下翻年如图3-3所示:图3-3:向下翻年(3)向上翻月如图3-4所示:图3-4:向上翻月(4)向下翻月如图3-5所示:图3-5:向下翻月(4)保存日志如图3-6所示:图3-6:保存日志(5)删除日志如图3-7所示:图3-7:删除日志(6)查看日志如图3-8所示:图3-8:查看日志(7)查询日志如图3-9所示:图3-9:查询日志4.5程序代码(部分)CalendarPad.javaimport java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import bel;import java.awt.event.MouseEvent;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//设置列顺序不可改变
tbCalendar .getTableHeader().setResizingAllowed(false);
/////设置列大小不可改变
nowDate=new JLabel();
nowDate.setText("今天是:"+gc.get(Calendar.YEAR)+"年"+
public void keyReleased(KeyEvent e) {
super.keyReleased(e);
if(e.getKeyCode()==KeyEvent.VK_ENTER)
btnYearDown=new JButton("▼");
//年份减按钮
btnYearDown.setFont(font);
btnYearDown.setMargin(new Insets(0,0,0,0));
btnYearUp.setBounds(40, 6, 20, 10);
//按钮定位
btnYearDown.setBounds(40, 16, 20, 10);
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
isSelected, boolean hasFocus,
int row, int column) {
Object o=tbCalendar.getValueAt(row,
column);
if(o!=null && o.equals(gc.get
(Calendar.DATE)+""))
{
setBackground(new Color
tbCalendar=new JTable(tableModel){///日 isCellEditable(int row, int
column) {
return false;
}
};
tbCalendar.setRowSelectionAllowed(false);

private static JComboBox comboMonth; //下拉框,显示输入月份
private JButton btnYearUp; ///按钮,年份加一
private JButton btnYearDown; //按钮,年份减一
private JPanel topPanel; ///顶部面板,放置
data=getdata(selfYear,selfMonth); ///
设置默认显示时间
col=new Object[7];
for(int i=0;i<7;i++)
{
col[i]=getWeek()[i+1].substring(2);
}
tableModel=new DefaultTableModel(data, col);
tbCalendar.setDefaultRenderer(Object.class, todayrender);
tbCalendar.setColumnSelectionAllowed(false);
tbCalendar .getTableHeader().setReorderingAllowed(false);
DefaultTableCellRenderer todayrender=new
DefaultTableCellRenderer(){ ///设置背景色
@Override
public Component
getTableCellRendererComponent(JTable table,
Object value, boolean
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
textYear,comboMonth,btnYearUp,btnYearDown
private JScrollPane scrollPane;
private static JTable tbCalendar; //放置日历主体
private JLabel nowDate; //显示当前年月日
private JPanel nowDatePanel=new JPanel();
textYear.setEditable(false);
Font font=new Font("宋体",Font.BOLD,8);
btnYearUp=new JButton("▲");
//年份加按钮,
btnYearUp.setMargin(new Insets(0,0,0,0));
btnYearUp.setFont(font);
topPanel.add(comboMonth);
scrollPane=new JScrollPane(tbCalendar);
scrollPane.setBounds(2, 32, 176, 120);
mainPanel.add(topPanel);
mainPanel.add(scrollPane);
mainPanel.add(nowDatePanel);
this.add(mainPanel);
}
private void addListener()
{
/*
*事件监听,在点击年份的文本域时,允许编辑
*/
textYear.addMouseListener(new MouseAdapter() {
@Override
/**
*一个小的日历
*用于输入合法时间
* @author王琛
*
*/
public class SelfCalendar extends JDialog{
private static JPanel mainPanel; ///主面板,用来放置
各个组件
private static JTextField textYear; //文本框,显示输入年
( gc.get
(Calendar.MONTH)+1)+"月"+gc.get(Calendar.DATE)+"日");
nowDate.setHorizontalAlignment(JLabel.CENTER);
nowDate.setBounds(0, 0, 176, 20);
nowDatePanel.setBounds(2, 148, 176, 20);
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
textYear.setEditable(true);
}
});
/*
*回车时,更新
*/
textYear.addKeyListener(new KeyAdapter() {
@Override
private String[] strMonth=
{"1","2","3","4","5","6","7","8","9","10","11","12"};
private Object[] col; ////表列名,星期几
private Object [][] data;//
private TableModel tableModel;
this.setLayout(null);
this.setVisible(true);
this.setResizable(false);
}
private void init(){
mainPanel=new JPanel();
mainPanel.setBounds(0,0,180, 170);
mainPanel.setLayout(null);
package com.gxaedu.jms.util;
import java.awt.Color;
import ponent;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionEvent;
nowDatePanel.setLayout(null);
nowDatePanel.setBackground(new Color(255,255,225));
nowDatePanel.add(nowDate);
/////////////////////////////////传来的文本框设置为默认的今天
private static GregorianCalendar gc=new GregorianCalendar();
private int selfYear;
private int selfMonth;
private static String selfDate;
相关文档
最新文档