修修改改网上的一个日历控件,精确到日期时分秒。
视图效果:
代码
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.DateTime;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
/**
*
* @description 日历控件的Dialog
* @className CalendarDialog
* @author share
* @date 2012-5-8 下午2:48:18
*/
public class CalendarDialog extends Dialog implements MouseListener{
private String selectedDate;// 选择的日期
private Display display;
private Shell dialog;
private DateTime calendar;
private DateTime date;
private DateTime time;
public CalendarDialog(Shell parent) {
super(parent);
}
public String getDateText() {
if(selectedDate == null){
return "";
}
return selectedDate.toString();
}
public void open(int x, int y) {
display = Display.getDefault();
dialog = new Shell(getParent(),SWT.DIALOG_TRIM);
dialog.setBounds(x, y, 230, 220);
dialog.setLayout(new GridLayout(3, false));
GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
data.horizontalSpan = 3;
calendar = new DateTime(dialog, SWT.CALENDAR | SWT.BORDER);
calendar.setLayoutData(data);
date = new DateTime(dialog, SWT.DATE | SWT.SHORT);
time = new DateTime(dialog, SWT.TIME | SWT.SHORT);
Button ok = new Button(dialog, SWT.PUSH);
ok.setText(" OK ");
ok.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
ok.addMouseListener(this);
dialog.setDefaultButton(ok);
dialog.pack();
dialog.open();
while (!dialog.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
@Override
public void mouseDoubleClick(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseDown(MouseEvent e) {
// TODO Auto-generated method stub
int month = (calendar.getMonth() + 1);
int day = calendar.getDay();
int hours = time.getHours();
int minutes = time.getMinutes();
selectedDate = calendar.getYear() +"-" + (month<10?"0"+month:month)+
"-" + (day<10?"0"+day:day) + " " + (hours<10?"0"+hours:hours) + ":"+
(minutes<10?"0"+minutes:minutes) + ":00";
this.dialog.close();
}
@Override
public void mouseUp(MouseEvent e) {
// TODO Auto-generated method stub
}
public void dispose(){
if(!this.dialog.isDisposed()){
this.dialog.dispose();
}
}
}
- 大小: 8.8 KB
分享到:
相关推荐
因此自己写一个日历控件用着方便,功能大致如下: 1、日历控件可自定义设置常见的几种日期格式; 2、可以绑定注册到其他控件如:文本框、按钮、标签上使用; 3、可以绑定注册控件后给指定其他控件赋值。 使用者可以...
SWT是底层的GUI库,提供了与操作系统直接交互的组件,而JFace则建立在SWT之上,提供了一层抽象,简化了GUI的开发过程。 ### SWT基础知识 SWT是一个开源的Java库,它允许开发者使用原生操作系统提供的控件来创建GUI...
书中会详细介绍如何使用SWT来创建窗口、按钮、文本框等基本元素,以及更复杂的控件如树视图、表格和日历。 JFace是建立在SWT之上的高级抽象层,它旨在简化UI编程,减少代码量,并提供数据绑定功能。通过JFace,...
而JFace是在SWT之上构建的一层抽象,简化了UI开发,提供了一些高级控件和数据绑定机制。 **第二部分:SWT组件篇** 这一部分可能详细介绍了SWT提供的各种组件,如按钮、文本框、列表、树视图、表格、滚动条等,并...
JFace则建立在SWT之上,它旨在提供更高级别的抽象层,简化GUI的开发过程。JFace的目标是减少代码量,提高代码的可读性和可维护性,同时也增强了组件之间的数据绑定和事件处理能力。JFace的核心概念包括视图(Views)...
虽然SWT主要用在非Swing的Java应用中,但是通过一些技术,如Java的桥接库(如JGoodies Forms或JFace Data Binding),可以将Swing组件与SWT界面混合使用,使得SWT应用也能利用Swing的丰富组件库,包括JDatePicker。...
RCP是一种基于SWT和JFace的框架,允许开发者创建功能丰富的桌面应用程序,具有模块化、可扩展的特性。 在RCP应用中,日期选择器是一个非常实用的组件,它允许用户通过一个友好的图形界面选取特定日期,常用于日程...
可能使用 SWT(Standard Widget Toolkit)或 JFace 等库来创建控件。 2. **显示日历**: 实现日历视图的展示,通常包括一个月的日期网格,以及上月、下月和年份切换的按钮。 3. **事件处理**: 当用户进行日期选择...
5. `org.eclipse.jface_3.11.0.v20150602-1400.jar`:Eclipse JFace是基于SWT的高级用户界面组件库,提供了一些抽象层,简化了对SWT控件的使用,如对话框、表视图等。 6. `org.eclipse.jface.text_3.10.0.v20150603...
自定义复合组件在需要独特界面设计或功能时特别有用,例如创建图表、日历控件等。 在学习SWT的过程中,理解每个组件的作用和用法是至关重要的。例如,`Button`、`Text`、`Table`、`Tree`等都是常用的SWT控件,它们...
这些小控件可以是天气预报、日历、时钟、便签等实用工具,也可以是定制化的快捷方式或者系统监控工具,让用户无需打开复杂的应用程序就能快速获取信息或执行简单操作。 使用Eclipse进行桌面小控件的开发,你需要...
9. **SWT与JFace结合**:JFace是建立在SWT之上的一层抽象,简化了UI开发,提供了数据绑定、视图模型等高级功能,两者结合可以提高代码的可读性和可维护性。 10. **性能优化**:由于SWT直接与操作系统交互,相比...
通过 SWT 的 `org.eclipse.swt.widgets.Calendar` 类和 `org.eclipse.jface.datepicker.DateTimePicker` 类,开发者可以轻松地在 Eclipse 应用程序中添加时间选择功能。 除了 SWT,JavaFX 也是一个流行的 Java GUI ...
- **JFace和SWT**:熟练使用JFace的控件和数据绑定,以及SWT的窗口、按钮、文本框等基本组件。 - **事件处理**:掌握如何通过监听和处理事件来实现用户交互。 - **服务组件**:了解如何定义和使用服务来实现模块间的...
JFace则是在SWT之上的一层抽象,简化了UI开发,提供了一些高级控件和数据绑定机制。 6. **透视图(Perspective)**: 透视图是RCP中的一个重要概念,它定义了工作台中视图和编辑器的排列方式。根据不同的任务需求...