对星期这块的要求无非是以下几个点:
1:支持多语言。
2:支持动态布局。
3:支持任意星期开始。这个解释一下,比如有的国家一个星期的开始是星期一有的是星期日,也有可能是星期X。
老规矩上图,看图说话:
中文环境,星期日为星期开始。
中文环境,星期二为星期开始。
英文环境,星期日为星期开始。
日文环境,星期日为星期开始。
自动适应布局的效果。总体思想是用GridLayout布局。一行七列。为了看得清楚,特意加了BORDER效果。
以下是关键代码:
private void initDayTitle() {
dayTitles = new Label[7];
for (int i = 0; i < dayTitles.length; i++) {
final Label label = new Label(dayTitle, SWT.CENTER);
label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
dayTitles[i] = label;
}
DateFormatSymbols dateFormatSymbols = new DateFormatSymbols(locale);
String[] dayNames = dateFormatSymbols.getShortWeekdays();
int minLength = Integer.MAX_VALUE;
for (int i = 0; i < dayNames.length; i++) {
int len = dayNames[i].length();
if (len > 0 && len < minLength) {
minLength = len;
}
}
if (minLength > 2) {
for (int i = 0; i < dayNames.length; i++) {
if (dayNames[i].length() > 0) {
if (locale.equals(Locale.CHINA)) {
if (dayNames[i].length() > 2) {
dayNames[i] = dayNames[i].substring(2, 3);
}
} else {
if (dayNames[i].length() > 0) {
dayNames[i] = dayNames[i].substring(0, 3);
}
}
}
}
}
firstDayOfWeek = basicCalendar.getFirstDayOfWeek();
int d = firstDayOfWeek;
for (int i = 0; i < dayTitles.length; i++) {
Label labelt = dayTitles[i];
labelt.setText(dayNames[d]);
labelt.setBackground(getBackground());
if (d == Calendar.SUNDAY) {
labelt.setForeground(getDisplay().getSystemColor(SWT.COLOR_RED));
} else if (d == Calendar.SATURDAY) {
labelt.setForeground(getDisplay().getSystemColor(SWT.COLOR_GREEN));
} else {
labelt.setForeground(getForeground());
}
d++;
if (d > dayTitles.length) {
d -= dayTitles.length;
}
}
}
分享到:
相关推荐
在这个“SWT日期时间选择控件.rar”压缩包中,包含的是一个针对SWT框架自定义封装的日期和时间选择器控件。这个控件允许用户方便地选取特定的日期和时间,提高了用户界面的交互性和用户体验。 在SWT中,虽然有基础...
在给定的资源中,“SWT日期时间选择控件类”是一个专门为SWT环境设计的控件,使得开发者能够轻松地在Java应用中集成日期和时间选择功能,并且支持拖放操作,提高了用户体验。 这个控件类可能是基于SWT的`Combo`或`...
SWT自带的DateTime控件属实不好用,而且无法绑定到其他控件上。因此自己写一个日历控件用着方便,功能大致如下: 1、日历控件可自定义设置常见的几种日期格式; 2、可以绑定注册到其他控件如:文本框、按钮、标签上...
本文将深入探讨在Java中使用SWT进行自定义控件的开发。 ### 1. SWT概述 SWT是一个开源的Java库,它的目标是提供与原生GUI库(如Windows的Win32 API,Mac OS的Cocoa,Linux的GTK+)类似的性能和功能。SWT使用JNI...
在SWT中,虽然内建了一些基本的控件,但并没有内置日期选择器(date picker)组件。因此,为了在SWT应用中实现日期选择功能,通常会采用第三方库或插件来扩展这一功能,如"SWT 第三方 date picker RCP"。 这个描述...
RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它提供了一种方便的方式来选择日期,增强了用户体验。 在RCP系统中,弹出式日期控件通常是为了简化用户在日期输入时的操作。这种控件不仅允许用户通过...
在“SWT 时间控件及执行bat文件”这个例子中,我们将探讨如何使用SWT来创建时间选择控件,以及如何利用Java的TimerTask类进行定时任务,同时还会学习如何通过批处理(bat)文件运行Java应用程序。 1. SWT时间控件:...
SWT(Standard Widget Toolkit)是Java编程中用于创建图形用户界面(GUI)的一种库,它为开发者提供了丰富的控件和对话框。在SWT中,`MessageBox`是一个用于显示简单的消息对话框的类,通常用来向用户显示警告、确认...
SWT控件包括按钮、文本框、列表、表格、树形视图、滚动条、菜单等基本元素,以及更复杂的如日历、颜色选择器等。SWT的优势在于它能充分利用操作系统的图形资源,避免了Java AWT或Swing中常见的“Java Look and Feel...
### SWT 自定义控件开发详解 #### 背景与需求 随着基于Eclipse平台的应用程序日益增多,开发者越来越依赖于SWT/JFace等提供的工具包来构建丰富的用户界面。然而,这些内置组件库虽然提供了大量的基础控件,但在特定...
SWT(Standard Widget Toolkit)是Eclipse开源项目中用于构建图形用户界面(GUI)的一种库,它是Java语言中的一种窗口工具包,与Java Swing不同,SWT基于原生的系统控件,因此提供了更好的性能和与操作系统的深度...
支持功能有: 1. 跨行和跨列功能 2. 页码和页数统计 3. 边距和间距调整 4. 各边框颜色设置 5. 前景和背景颜色 6. 自适应页面大小 .........一个是SWT Report的项目包,另一个是CustomReportTest 类生成的报表
Java使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的...
**SWT控件详解** SWT(Standard Widget Toolkit)是由Eclipse基金会开发并维护的一套用于构建图形用户界面(GUI)的开源库,它是Java语言中的一个GUI工具包,主要面向那些希望创建高性能、原生外观的应用程序的...
本文将深入探讨如何使用Draw2D模拟SWT中的RadioButton和CheckedBox控件,以及这些控件在实际应用中的作用和实现方式。 首先,RadioButton和CheckedBox是GUI中的两种常见选择控件。RadioButton通常用于提供一组互斥...
- 设计布局,使用SWT提供的布局管理器来组织控件的位置和大小。 - 处理事件,为控件绑定事件监听器以响应用户的交互。 2. **SWT常用组件的使用**: - Button:按钮,可以响应用户的点击。 - Text:文本输入框...
jface/swt windows系统中所需动态链接库
"Draw2D模拟SWT控件之TextField、TextArea"这个主题聚焦于使用Draw2D库来模仿SWT(Standard Widget Toolkit)中的两种基本输入控件:TextField和TextArea。SWT是Eclipse基金会的一个开源项目,用于构建原生外观的...
### SWT JFace 按键、事件、监听 #### 概述 SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形...