`
withyou
  • 浏览: 454822 次
社区版块
存档分类
最新评论

打造完美SWT日期选择控件:(六)星期

阅读更多
 对星期这块的要求无非是以下几个点:
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, truetrue));
            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(23);
                        }
                    } 
else {
                        
if (dayNames[i].length() > 0) {
                            dayNames[i] 
= dayNames[i].substring(03);
                        }
                    }
                }
            }
        }
        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;
            }
        }

    }



交口称赞 2006-12-29 11:25 发表评论
分享到:
评论

相关推荐

    SWT日期时间选择控件.rar

    在这个“SWT日期时间选择控件.rar”压缩包中,包含的是一个针对SWT框架自定义封装的日期和时间选择器控件。这个控件允许用户方便地选取特定的日期和时间,提高了用户界面的交互性和用户体验。 在SWT中,虽然有基础...

    一个SWT日期时间选择控件类

    在给定的资源中,“SWT日期时间选择控件类”是一个专门为SWT环境设计的控件,使得开发者能够轻松地在Java应用中集成日期和时间选择功能,并且支持拖放操作,提高了用户体验。 这个控件类可能是基于SWT的`Combo`或`...

    SWT/JFace 自定义日历控件(可绑定注册到其他控件)

    SWT自带的DateTime控件属实不好用,而且无法绑定到其他控件上。因此自己写一个日历控件用着方便,功能大致如下: 1、日历控件可自定义设置常见的几种日期格式; 2、可以绑定注册到其他控件如:文本框、按钮、标签上...

    java swt自定义控件

    本文将深入探讨在Java中使用SWT进行自定义控件的开发。 ### 1. SWT概述 SWT是一个开源的Java库,它的目标是提供与原生GUI库(如Windows的Win32 API,Mac OS的Cocoa,Linux的GTK+)类似的性能和功能。SWT使用JNI...

    SWT日期控件

    在SWT中,虽然内建了一些基本的控件,但并没有内置日期选择器(date picker)组件。因此,为了在SWT应用中实现日期选择功能,通常会采用第三方库或插件来扩展这一功能,如"SWT 第三方 date picker RCP"。 这个描述...

    RCP弹出日期控件

    RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它提供了一种方便的方式来选择日期,增强了用户体验。 在RCP系统中,弹出式日期控件通常是为了简化用户在日期输入时的操作。这种控件不仅允许用户通过...

    SWT 时间控件及执行bat文件

    在“SWT 时间控件及执行bat文件”这个例子中,我们将探讨如何使用SWT来创建时间选择控件,以及如何利用Java的TimerTask类进行定时任务,同时还会学习如何通过批处理(bat)文件运行Java应用程序。 1. SWT时间控件:...

    SWT 弹出对话框 可以选择的图标种类

    SWT(Standard Widget Toolkit)是Java编程中用于创建图形用户界面(GUI)的一种库,它为开发者提供了丰富的控件和对话框。在SWT中,`MessageBox`是一个用于显示简单的消息对话框的类,通常用来向用户显示警告、确认...

    SWT/JFace 控件实例

    SWT控件包括按钮、文本框、列表、表格、树形视图、滚动条、菜单等基本元素,以及更复杂的如日历、颜色选择器等。SWT的优势在于它能充分利用操作系统的图形资源,避免了Java AWT或Swing中常见的“Java Look and Feel...

    SWT 自定义控件

    ### SWT 自定义控件开发详解 #### 背景与需求 随着基于Eclipse平台的应用程序日益增多,开发者越来越依赖于SWT/JFace等提供的工具包来构建丰富的用户界面。然而,这些内置组件库虽然提供了大量的基础控件,但在特定...

    swt design for eclipse 3.2

    SWT(Standard Widget Toolkit)是Eclipse开源项目中用于构建图形用户界面(GUI)的一种库,它是Java语言中的一种窗口工具包,与Java Swing不同,SWT基于原生的系统控件,因此提供了更好的性能和与操作系统的深度...

    纯SWT的报表库: SWT Report

    支持功能有: 1. 跨行和跨列功能 2. 页码和页数统计 3. 边距和间距调整 4. 各边框颜色设置 5. 前景和背景颜色 6. 自适应页面大小 .........一个是SWT Report的项目包,另一个是CustomReportTest 类生成的报表

    Java使用SWT JFreeChart控件实现的小游戏.zip

    Java使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的...

    SWT控件

    **SWT控件详解** SWT(Standard Widget Toolkit)是由Eclipse基金会开发并维护的一套用于构建图形用户界面(GUI)的开源库,它是Java语言中的一个GUI工具包,主要面向那些希望创建高性能、原生外观的应用程序的...

    Draw2D 模拟SWT控件之RadioButton、CheckedBox

    本文将深入探讨如何使用Draw2D模拟SWT中的RadioButton和CheckedBox控件,以及这些控件在实际应用中的作用和实现方式。 首先,RadioButton和CheckedBox是GUI中的两种常见选择控件。RadioButton通常用于提供一组互斥...

    最完美SWT的教程

    - 设计布局,使用SWT提供的布局管理器来组织控件的位置和大小。 - 处理事件,为控件绑定事件监听器以响应用户的交互。 2. **SWT常用组件的使用**: - Button:按钮,可以响应用户的点击。 - Text:文本输入框...

    swt-win32-3236.dll

    jface/swt windows系统中所需动态链接库

    Draw2D 模拟SWT控件之TextField、TextArea

    "Draw2D模拟SWT控件之TextField、TextArea"这个主题聚焦于使用Draw2D库来模仿SWT(Standard Widget Toolkit)中的两种基本输入控件:TextField和TextArea。SWT是Eclipse基金会的一个开源项目,用于构建原生外观的...

    SWT JFace 按键、事件、监听

    ### SWT JFace 按键、事件、监听 #### 概述 SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形...

Global site tag (gtag.js) - Google Analytics