- 浏览: 568601 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (344)
- ··············未分类············· (33)
- Eclipse 插件 (15)
- EDA 工具 (1)
- Linux/Unix (3)
- Java (43)
- Java Applet (1)
- Java Draw2d (22)
- Java Draw2d version2 (6)
- Java GEF (2)
- Java SWT (21)
- Java SWT Image 图像 (21)
- Java SWT Tree (16)
- Java SWT Table (4)
- Java SWT TableViewer (11)
- Java SWTbot (4)
- Java Test (2)
- Java Thread 多线程 (22)
- Java Zest (5)
- RC2_3S400学习笔记 (16)
- tcl 脚本 (10)
- Verilog (7)
- XML (6)
- 国家 (5)
- 感叹 (4)
- 面试题 (9)
- 生活 (36)
- 足球 世界杯 (8)
- 老公看你的 (3)
- web开发 (1)
- 数据结构——图 (7)
- c language (1)
最新评论
-
zxjlwt:
路过素人派http://surenpi.com
SWT 树的事件 SWT.Selection SWT.CHECK SWT.DefaultSelection -
hj01kkk:
1楼用法正解
JDK 7 中的 Fork/Join 模式 -
fish_no7:
使用 new SortTask().fork()
JDK 7 中的 Fork/Join 模式 -
wpf523:
mark
Java 多线程例子6 线程安全 线程同步 同步代码块 同步函数 -
uniquejava:
以前碰到过,估计是在icu包中实现了双击自动选中一段文本的功能 ...
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
public class Sample3 { private Color green = Display.getCurrent().getSystemColor(SWT.COLOR_GREEN); private Color white = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE); private Color gray = Display.getCurrent().getSystemColor(SWT.COLOR_GRAY); private Color cray = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_CYAN); private Color red = Display.getCurrent().getSystemColor(SWT.COLOR_RED); private Vector<CLabel> monthVector = new Vector<CLabel>(45); private GridData gridData; private GregorianCalendar calendar; private int todayInt; private Combo yearCombo, monthCombo; private Combo lunarYearCombo, lunarMonthCombo, lunarDayCombo; private CLabel lunarClabel, weekInYearClabel; private Lunar lunar; public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("日历"); new Sample3().createArea(shell); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } private void createArea(Shell shell) { shell.setLayout(new GridLayout()); // shell.setSize(400, 400); Composite container = new Composite(shell, SWT.BORDER); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayout.marginLeft = 0; gridLayout.marginRight = 0; gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; gridLayout.verticalSpacing=0; container.setLayout(gridLayout); gridData = new GridData(GridData.FILL_BOTH); container.setLayoutData(gridData); Composite c1 = new Composite(container, SWT.BORDER); gridLayout = new GridLayout(); gridLayout.numColumns = 5; gridLayout.marginLeft = 10; gridLayout.marginRight = 10; gridLayout.marginHeight = 10; gridLayout.marginWidth = 10; gridLayout.verticalSpacing=0; gridLayout.horizontalSpacing = 1; c1.setLayout(gridLayout); gridData = new GridData(GridData.FILL_HORIZONTAL); c1.setLayoutData(gridData); createC1(c1); Composite c2 = new Composite(container, SWT.BORDER); gridLayout = new GridLayout(); gridLayout.numColumns = 7; gridLayout.marginLeft = 0; gridLayout.marginRight = 0; gridLayout.marginHeight = 5; gridLayout.marginWidth = 5; gridLayout.verticalSpacing=0; c2.setLayout(gridLayout); gridData = new GridData(GridData.FILL_BOTH); c2.setLayoutData(gridData); createC2forTitle(c2); createC2forMonth(c2); addListen4Month(); Composite c3 = new Composite(container, SWT.BORDER); gridLayout = new GridLayout(); gridLayout.numColumns = 5; gridLayout.marginLeft = 2; gridLayout.marginRight = 2; gridLayout.marginHeight = 2; gridLayout.marginWidth = 2; gridLayout.verticalSpacing=0; gridLayout.horizontalSpacing = 1; c3.setLayout(gridLayout); gridData = new GridData(GridData.FILL_HORIZONTAL); c3.setLayoutData(gridData); createC3(c3); today(); } private void createC3(Composite c3) { //weekInYearClabel weekInYearClabel = new CLabel(c3, SWT.CENTER | SWT.BORDER); gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.horizontalAlignment = SWT.LEFT; weekInYearClabel.setLayoutData(gridData); weekInYearClabel.setText("第几周"); weekInYearClabel.setBackground(gray); { // lunar year combo lunarYearCombo = new Combo(c3, SWT.DROP_DOWN | SWT.READ_ONLY ); gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.horizontalAlignment = SWT.RIGHT; lunarYearCombo.setLayoutData(gridData); for(int i=1900; i<=2050; i++) { lunarYearCombo.add(""+i); } lunarYearCombo.select(0); // lunar month combo String[] lunarMonthStr = { "正月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "冬月", "腊月" }; lunarMonthCombo = new Combo(c3, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.RIGHT); gridData = new GridData(); // the restriction for grid. gridData.grabExcessHorizontalSpace = true; // the process for widget in the grid. gridData.horizontalAlignment = SWT.LEFT; lunarMonthCombo.setLayoutData(gridData); lunarMonthCombo.setItems(lunarMonthStr); lunarMonthCombo.select(0); //lunar day combo String[] lunarDayStr = { "初一","初二","初三","初四","初五","初六","初七","初八","初九","初十", "十一","十二","十三","十四","十五","十六","十七","十八","十九","廿十", "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","卅十", }; lunarDayCombo = new Combo(c3, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.RIGHT); gridData = new GridData(); // the restriction for grid. gridData.grabExcessHorizontalSpace = true; // the process for widget in the grid. gridData.horizontalAlignment = SWT.LEFT; lunarDayCombo.setLayoutData(gridData); lunarDayCombo.setItems(lunarDayStr); lunarDayCombo.select(0); Button lunar2solar = new Button(c3, SWT.NONE); gridData = new GridData(); // the restriction for grid. gridData.grabExcessHorizontalSpace = true; // the process for widget in the grid. gridData.horizontalAlignment = SWT.LEFT; lunar2solar.setLayoutData(gridData); lunar2solar.setText("农历转公历"); lunar2solar.addMouseListener(new MouseAdapter() { public void mouseDown(MouseEvent e) { int lunarYear, lunarMonth, lunarDay; lunarYear = Integer.parseInt(lunarYearCombo.getText()); lunarMonth = lunarMonthCombo.getSelectionIndex() +1; lunarDay = lunarDayCombo.getSelectionIndex() +1; int solarYear, solarMonth, solarDay; String solarStr = ChineseCalendar.sCalendarLundarToSolar(lunarYear, lunarMonth, lunarDay); solarYear = Integer.parseInt(solarStr.substring(0, 4)); solarMonth = Integer.parseInt(solarStr.substring(4, 6)); solarDay = Integer.parseInt(solarStr.substring(6, 8)); calendar = new GregorianCalendar(); calendar.set(Calendar.YEAR, solarYear); calendar.set(Calendar.MONTH, solarMonth-1); calendar.set(Calendar.DAY_OF_MONTH, solarDay); todayInt = solarDay; // refresh yearCombo, monthCombo, lunarClabel, weekInYearClabel; yearCombo.select(solarYear-1900); monthCombo.select(solarMonth-1); // refresh week in year weekInYearClabel.setText("第 "+ calendar.get(Calendar.WEEK_OF_YEAR) +" 周"); // refresh lunarClabel lunar = new Lunar(calendar); lunarClabel.setText(lunar.toString()); calendar.set(Calendar.DAY_OF_MONTH, 1); int firstDayWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; int maxDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); refresh(firstDayWeek, maxDayOfMonth); } }); } } private void createC1(Composite c1) { //years combo yearCombo = new Combo(c1, SWT.DROP_DOWN | SWT.READ_ONLY ); gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.horizontalAlignment = SWT.LEFT; yearCombo.setLayoutData(gridData); for(int i=1900; i<=2050; i++) { yearCombo.add(""+i); } yearCombo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { calendar = new GregorianCalendar(); refreshMonth(); } }); //month combo monthCombo = new Combo(c1, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.RIGHT); gridData = new GridData(); // the restriction for grid. gridData.grabExcessHorizontalSpace = true; // the process for widget in the grid. gridData.horizontalAlignment = SWT.LEFT; monthCombo.setLayoutData(gridData); for(int i=1; i<=12; i++) { monthCombo.add(""+i); } monthCombo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { calendar = new GregorianCalendar(); refreshMonth(); } }); //lunar lunarClabel = new CLabel(c1, SWT.CENTER | SWT.BORDER); gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 2; gridData.horizontalAlignment = SWT.RIGHT; lunarClabel.setLayoutData(gridData); lunarClabel.setText("。。。"); lunarClabel.setBackground(gray); //today Button todayButton = new Button(c1, SWT.NONE | SWT.WRAP); gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.horizontalAlignment = SWT.RIGHT; todayButton.setLayoutData(gridData); todayButton.setText("今天"); todayButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { today(); } }); } // text private void createC2forTitle(Composite c2) { final String WEEK[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; for(int i=0; i<7; i++) { Button week = new Button(c2, SWT.NONE); week.setText(WEEK[i]); gridData = new GridData(GridData.FILL_BOTH); week.setLayoutData(gridData); week.setEnabled(false); week.setBackground(cray); } } private void createC2forMonth(Composite c2) { for(int i=0; i<42; i++) { CLabel b = new CLabel(c2, SWT.CENTER | SWT.BORDER); gridData = new GridData(GridData.FILL_BOTH); b.setLayoutData(gridData); b.setText("tst" +i); b.setBackground(white); if ((i+1)%7==0 || i%7==0) { b.setForeground(red); } monthVector.add(b); } } private void addListen4Month() { for(int i=0; i<42; i++) { final CLabel b= monthVector.elementAt(i); b.addMouseListener(new MouseAdapter() { public void mouseDown(MouseEvent e) { for(int i=0; i<42; i++) { CLabel c = monthVector.elementAt(i); c.setBackground(white); } b.setBackground(green); calendar = new GregorianCalendar(); todayInt = Integer.parseInt(b.getText().substring(0, 2).trim()); calendar.set(Calendar.DAY_OF_MONTH, todayInt); refreshMonth(); } }); } } private void today() { calendar = new GregorianCalendar(); //refresh yearCombo, monthCombo, lunarClabel, weekInYearClabel; int year = calendar.get(Calendar.YEAR); yearCombo.select(year-1900); int month = calendar.get(Calendar.MONTH)+1; monthCombo.select(month-1); weekInYearClabel.setText("第 "+ calendar.get(Calendar.WEEK_OF_YEAR) +" 周"); lunar = new Lunar(calendar); lunarClabel.setText(lunar.toString()); todayInt = calendar.get(Calendar.DAY_OF_MONTH); //refresh lunarYearCombo, lunarMonthCombo, lunarDayCombo; refreshLunarCombo(calendar); int maxDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH, 1); int firstDayWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; refresh(firstDayWeek, maxDayOfMonth); } private void refreshLunarCombo(GregorianCalendar calendar2) { int year = calendar2.get(Calendar.YEAR); int month = calendar2.get(Calendar.MONTH)+1; String lunarStr = ChineseCalendar.sCalendarSolarToLundar(year, month, todayInt); int lyear = Integer.parseInt(lunarStr.substring(0, 4)); int lmonth = Integer.parseInt(lunarStr.substring(4, 6)); int lday = Integer.parseInt(lunarStr.substring(6, 8)); lunarYearCombo.select(lyear-1900); lunarMonthCombo.select(lmonth-1); lunarDayCombo.select(lday-1); } private void refreshMonth() { calendar.set(Calendar.YEAR, yearCombo.getSelectionIndex() + 1900); calendar.set(Calendar.MONTH, monthCombo.getSelectionIndex()); // refresh week in year weekInYearClabel.setText("第 "+ calendar.get(Calendar.WEEK_OF_YEAR) +" 周"); // refresh lunarClabel lunar = new Lunar(calendar); lunarClabel.setText(lunar.toString()); // refresh lunarYearCombo, lunarMonthCombo, lunarDayCombo; int maxDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); todayInt = (maxDayOfMonth<todayInt)?maxDayOfMonth:todayInt; refreshLunarCombo(calendar); calendar.set(Calendar.DAY_OF_MONTH, 1); int firstDayWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; refresh(firstDayWeek, maxDayOfMonth); } private void refresh(int firstDayWeek, int maxDayOfMonth) { // clean for(int i=0; i<42; i++) { CLabel b=monthVector.elementAt(i); b.setText(""); b.setBackground(white); b.setEnabled(false); } String appStr; // String lunarStr; // String solarTerms; // String lunarFestival; // for(int i=firstDayWeek,j=1; j<=maxDayOfMonth; i++,j++) { calendar.set(Calendar.DAY_OF_MONTH, j); lunar = new Lunar(calendar); lunarStr = lunar.getChinaDayString(); solarTerms = lunar.getSolarTerms(); lunarFestival =lunar.getLunarFestival(); if(lunarFestival.compareTo("") != 0) { appStr = lunarFestival; } else if (solarTerms.compareTo("") != 0) { appStr = solarTerms; } else { appStr = lunarStr; } CLabel b=monthVector.elementAt(i); b.setText(j +" "+ appStr); if (j==todayInt) { b.setBackground(green); } b.setEnabled(true); } } }
运行上面程序需要附件中的两个类(ChineseCalendar.java 和 Lunar.java)。
效果图:
发表评论
-
定制tooltip
2013-10-06 18:17 757public class HelloToolTip { ... -
java SWT StackLayout
2013-09-16 17:40 879public class UsingStackLayout ... -
JFace snippet
2013-01-31 11:00 1424附件有org.eclipse.jface.snippets, ... -
SWT 中Button和Label重叠放置
2011-12-30 17:18 2724写了一个小例子: public class Snipp ... -
SWT DND的Snippet 和 剪贴板
2011-11-15 19:50 2279链接:http://www.eclipse.org/swt/s ... -
display.getSystemColor 中的颜色
2011-10-28 20:41 1280记得以前好像记录过,就是找不到了。 public c ... -
SWT程序需要导入的jar
2011-10-12 18:04 11991,org.eclipse.swt.win32.x86_xxx ... -
用滚动的字符表示Task的运行,比较ProgressMonitorDialog
2011-08-16 17:55 3247JFace中的提供的ProgressMonitorDialog ... -
SWT 的对话框模式与非模式
2011-05-24 16:03 2009关键字:SWT 对话框 模式 非模式 SWT.MODELESS ... -
Java SWT SWTChart坐标图
2010-12-13 14:02 4558关键字: SWTChart 坐标图 链接:http://w ... -
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
2010-11-25 14:00 3229关键字:java.lang.NoClassDefFoundE ... -
类似百度和谷歌那样的自动提示组合框
2010-09-30 14:04 1391问题:http://www.iteye.com/problem ... -
SWT表格列随着控件变化自动变化
2010-07-08 17:23 2142源程序来自:snippet77 /********** ... -
一个简单的时钟程序
2010-07-02 19:24 1145public class Sample2 { privat ... -
Image中的transformation理解【swt.snippet】
2010-07-02 17:48 1556/****************************** ... -
计分器
2010-07-02 17:28 1190代码: public class Sample1 { p ... -
SWT资料
2010-06-30 19:24 876SWT-jface一些例子: http://www.j ... -
事件管理器 4个象限【还没有完成】
2010-06-23 17:12 12001,改完成了一个大概的样子,还要把Text改成List,可以添 ... -
利用SWT内部的图标
2010-06-23 16:55 2959import org.eclipse.swt.SWT; im ... -
SWT 浏览器
2010-06-23 16:48 2814这个来自书上的一个例子: package firstSWT ...
相关推荐
本项目涉及的是一个使用VC++实现的阳历与农历转换程序,它能够进行公历(阳历)和阴历(农历)之间的相互转换。这种功能在处理中国传统节日或者需要考虑农历的日程管理软件中非常实用。 首先,我们要理解阳历和农历...
它很可能包含创建和填充日历表的SQL语句,可能包括两个主要的表:一个用于公历(阳历),另一个用于农历(阴历)。这两个表可能包含以下字段: 1. **公历表**: - `id`:唯一标识每一条记录的主键。 - `year`:...
公历农历(阳历阴历)对照表(1900年-2100年),客户生日提醒,各种根据身份证转换阴历生日之类的业务场景必备神器。公历农历(阳历阴历)对照表(1900年-2100年),客户生日提醒,各种根据身份证转换阴历生日之类的业务场景...
本话题聚焦于如何在微信小程序中实现一个功能完善的农历阳历日期选择器,并在用户选择日期时即时获取对应的农历或阳历日期。 首先,我们需要理解农历和阳历的基本概念。阳历,又称公历,是基于地球绕太阳公转周期...
本文将详细解析如何在小程序中实现一个具备农历显示、休假补班功能以及自定义提醒的日历组件。 一、日历组件基础 1. 日历组件结构:日历组件通常由一个月的日历视图构成,每个日期格子可以包含日期数字、星期以及...
在Android开发中,日历功能是一项常见的需求,它不仅涉及到公历日期的处理,还可能需要展示农历信息、国内外节假日以及中国传统节气。本篇将深入解析“Android 日历完整(公历、农历、节假日、节气)demo源码”的...
在本案例中,我们关注的是一个特殊的数据库设计,涉及到1900年至2100年的日历数据,涵盖了公历和农历两个方面。这个数据库设计对于需要处理中国传统节日或者需要同时显示公历和农历日期的系统特别有用。 首先,我们...
Java阳历转农历类可以将公历日期转换为农历日期,提供了一个便捷的方式来获取农历日期。 在 Java 中,实现阳历转农历需要使用到 Calendar 和 Date 类。Calendar 类提供了一个抽象的日历模型,可以用来计算日期的年...
信息最全的农历万年历,可以计算1901-2300年的信息,有整齐美观的日历格式打印。 公历信息包括日期、星期、节日。 农历信息包括二十四节气时间点、闰月、大小月、三伏、九九、干支、年号、农历节假日、属相等。 还...
在本文中,我们将深入探讨如何在Delphi编程环境中创建一个集成24节气、日历以及农历功能的应用程序。Delphi是一种强大的Object Pascal编程工具,它提供了丰富的组件库和强大的功能,使得开发这类应用程序变得相对...
在Android平台上,开发一款本地日历应用,可以提供丰富的功能,包括阴阳历显示、农历节气查询、天气信息获取以及一些特色服务如称骨算命和阴阳历转换等。这样的应用能够满足用户对于传统与现代日历功能的需求,提供...
Java编写的日历系统是一个强大的工具,它集成了公历与农历的转换和对照功能,为用户提供了一种方便的方式来查看和管理日期。这个系统的核心在于它能够准确地将公历日期映射到对应的农历日期,这在许多文化中,尤其是...
一个日历程序,可以转换农历,显示节气。还带有圆形的时钟。资源包含了农历节气算法和时钟控件源代码。
我们可以创建一个应用程序,让用户输入公历日期,然后通过后台计算显示出对应的农历日期、节气、干支信息和相关的传统节日。为了实现这些功能,我们需要编写以下类: 1. `LunarConverter`:这个类将包含农历和公历...
在Java编程语言中,开发一个万年历系统,特别是涉及到农历和阳历的转换,是一项具有挑战性的任务。农历和阳历是两种不同的日期表示方式,理解和实现它们之间的转换需要深入理解日期计算的原理和算法。 阳历,也称为...
C#阳历农历日历类 农历属性 农历年 农历月份 农历天 农历年(支干) 农历月份(字符) 农历天(字符) 农历属象 二十四节气 阴历节日 阳历节日 公历转农历 传回农历y年的总天数 传回农历y年闰月的天数 传回农历y年闰哪个月...
标题中的“公历与农历互转 纯DELPHI代码 支持0-9999年”表明,我们关注的是一个使用DELPHI编写的程序,它可以处理公元前1年至公元9999年之间的日期转换。DELPHI是一种强大的面向对象的编程语言,以其高效和灵活性而...
Java万年历是一款功能丰富的日历应用,专为程序员和普通用户设计,提供从1800年至2100年间的日期展示,涵盖了公历、农历、星期以及二十四节气等多种时间信息。这款程序的核心在于其强大的日期计算和转换算法,能够...
Oracle数据库系统提供了强大的日期处理功能,其中包括将公历(阳历)日期转换为农历日期。在Oracle中,虽然没有内置的直接转换函数来实现这一功能,但可以通过自定义函数或者利用现有的开源存储过程来实现这一转换。...