- 浏览: 209661 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
listen-raining:
你好。 我是这样写的: JButton b4=new ...
swing 初级学习(四)模式窗口取返回值 -
liu765023051:
灰常感谢~~
同一台机器上配置多个jboss应用服务器实例 -
Mr_Monotony:
为什么我按照这个写了不行啊?。。 只有自己才能看到信息。 而且 ...
Dwr推送技术学习 -
不过是过客:
太厉害了,IE上推送有问题,到处找,看到大哥这个试了一盘,没问 ...
Dwr推送技术学习
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class MyCalendar extends JApplet {
public static final String WEEK_SUN = "日";
public static final String WEEK_MON = "一";
public static final String WEEK_TUE = "二";
public static final String WEEK_WED = "三";
public static final String WEEK_THU = "四";
public static final String WEEK_FRI = "五";
public static final String WEEK_SAT = "六";
public static final Color background = Color.white;
public static final Color foreground = Color.black;
public static final Color headerBackground = Color.blue;
public static final Color headerForeground = Color.white;
public static final Color selectedBackground = Color.blue;
public static final Color selectedForeground = Color.white;
private JPanel cPane;
private JLabel yearsLabel;
private JSpinner yearsSpinner;
private JLabel monthsLabel;
private JComboBox monthsComboBox;
private JTable daysTable;
private AbstractTableModel daysModel;
private Calendar calendar;
private String value;
public String getValue() {
return this.value;
}
public MyCalendar() {
cPane = (JPanel) getContentPane();
}
public void init() {
cPane.setLayout(new BorderLayout());
calendar = Calendar.getInstance();
calendar = Calendar.getInstance();
yearsLabel = new JLabel("年: ");
yearsSpinner = new JSpinner();
yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));
yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR)));
yearsSpinner.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent changeEvent) {
int day = calendar.get(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue())
.intValue());
int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
calendar
.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);
updateView();
}
});
JPanel yearMonthPanel = new JPanel();
cPane.add(yearMonthPanel, BorderLayout.NORTH);
yearMonthPanel.setLayout(new BorderLayout());
yearMonthPanel.add(new JPanel(), BorderLayout.CENTER);
JPanel yearPanel = new JPanel();
yearMonthPanel.add(yearPanel, BorderLayout.WEST);
yearPanel.setLayout(new BorderLayout());
yearPanel.add(yearsLabel, BorderLayout.WEST);
yearPanel.add(yearsSpinner, BorderLayout.CENTER);
monthsLabel = new JLabel("月: ");
monthsComboBox = new JComboBox();
for (int i = 1; i <= 12; i++) {
monthsComboBox.addItem(new Integer(i));
}
monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));
monthsComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
int day = calendar.get(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, monthsComboBox.getSelectedIndex());
int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
calendar
.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);
updateView();
}
});
JPanel monthPanel = new JPanel();
yearMonthPanel.add(monthPanel, BorderLayout.EAST);
monthPanel.setLayout(new BorderLayout());
monthPanel.add(monthsLabel, BorderLayout.WEST);
monthPanel.add(monthsComboBox, BorderLayout.CENTER);
daysModel = new AbstractTableModel() {
public int getRowCount() {
return 7;
}
public int getColumnCount() {
return 7;
}
public Object getValueAt(int row, int column) {
if (row == 0) {
return getHeader(column);
}
row--;
Calendar calendar = (Calendar) MyCalendar.this.calendar.clone();
calendar.set(Calendar.DAY_OF_MONTH, 1);
int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1;
int index = row * 7 + column;
int dayIndex = index - moreDayCount + 1;
if (index < moreDayCount || dayIndex > dayCount) {
return null;
} else {
return new Integer(dayIndex);
}
}
};
daysTable = new CalendarTable(daysModel, calendar);
daysTable.setCellSelectionEnabled(true);
daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
daysTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
if (e.getClickCount() == 2) {
Object o = daysTable.getValueAt(daysTable.getSelectedRow(),
daysTable.getSelectedColumn());
if (o != null) {
// 不是点在空的格子,赋值
value = yearsSpinner.getValue()
+ monthsComboBox.getSelectedItem().toString()
+ o;
System.out.println(value);
} else {
// 否则清空
value = "";
}
}
}
});
daysTable.setDefaultRenderer(daysTable.getColumnClass(0),
new TableCellRenderer() {
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
String text = (value == null) ? "" : value.toString();
JLabel cell = new JLabel(text);
cell.setOpaque(true);
if (row == 0) {
cell.setForeground(headerForeground);
cell.setBackground(headerBackground);
} else {
if (isSelected) {
cell.setForeground(selectedForeground);
cell.setBackground(selectedBackground);
} else {
cell.setForeground(foreground);
cell.setBackground(background);
}
}
return cell;
}
});
updateView();
cPane.add(daysTable, BorderLayout.CENTER);
}
public static String getHeader(int index) {
switch (index) {
case 0:
return WEEK_SUN;
case 1:
return WEEK_MON;
case 2:
return WEEK_TUE;
case 3:
return WEEK_WED;
case 4:
return WEEK_THU;
case 5:
return WEEK_FRI;
case 6:
return WEEK_SAT;
default:
return null;
}
}
public void updateView() {
daysModel.fireTableDataChanged();
daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH),
calendar.get(Calendar.WEEK_OF_MONTH));
daysTable.setColumnSelectionInterval(
calendar.get(Calendar.DAY_OF_WEEK) - 1, calendar
.get(Calendar.DAY_OF_WEEK) - 1);
}
public static class CalendarTable extends JTable {
private Calendar calendar;
public CalendarTable(TableModel model, Calendar calendar) {
super(model);
this.calendar = calendar;
}
public void changeSelection(int row, int column, boolean toggle,
boolean extend) {
super.changeSelection(row, column, toggle, extend);
if (row == 0) {
return;
}
Object obj = getValueAt(row, column);
if (obj != null) {
calendar.set(Calendar.DAY_OF_MONTH, ((Integer) obj).intValue());
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Calendar Application");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyCalendar myCalendar = new MyCalendar();
myCalendar.init();
frame.getContentPane().add(myCalendar);
frame.setSize(240, 172);
frame.show();
}
}
发表评论
-
struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
2013-11-22 11:12 654dispatcher 为默认跳转类型,用于返回一个视图资源(如 ... -
struts2拦截器(Interceptor)与传统拦截器(Filter)
2013-11-22 11:10 2212比较一下 Filter 该过滤器的方法是创建一个类XX ... -
获取mac cpu 主板信息
2013-10-17 11:13 890window 软件加密 -
java rmi
2012-01-12 13:56 785转载:http://www.cnblogs.com/ninah ... -
SNUM 学习一
2011-01-24 11:37 1454SNMP是英文“Simple Network Manageme ... -
工程编码格式转换
2010-12-10 15:28 1053由于GWT(Google Web Toolkit)需要utf- ... -
struts2 格式转换机制
2010-12-10 15:05 952一、概述 在B/S应 ... -
struts2 零配置
2010-09-08 17:27 1014最近开始关注struts2的新特性,从这个版本开始,Strut ... -
struts2-convention-plugin-2.1.6.jar测试零配置
2010-09-08 15:41 1228问题是: 如果web-inf/content/test/use ... -
struts2 零配置
2010-08-27 14:46 985出处:http://javeye.iteye.co ... -
MyEclipse 性能优化
2010-07-23 16:50 926性能优化 1 、关闭MyEcl ... -
swing 初级学习(五) 拖动
2010-07-01 15:25 872http://www.jgraph.com/jgrap ... -
工程打包 jar
2010-06-29 11:31 9331.建立MANIFEST.MF (在D:\abc目录下) 以下 ... -
swing 初级学习(四)模式窗口取返回值
2010-06-12 14:45 5413javax.swing.JDialog类 a类: ... -
定时器
2010-05-06 11:56 914public static void main(Stri ... -
项目部署(一)
2010-05-05 14:23 924jar包的制作: 1。将存放文件iMsgServer2000 ... -
swing 初级学习(二)
2010-03-31 11:26 932分隔符 public static void main ... -
swing 初级学习(一)
2010-03-30 11:46 1070jframe 最大、最小、关 ... -
java 截取屏幕
2010-02-21 14:22 935package com.zzst.application.me ... -
word控件
2010-02-20 09:21 869FCKeditor -- 免费的编辑器,支持多种流览器. ...
相关推荐
通过研究这些文件,开发者可以学习如何自定义日期格式、改变控件外观、添加事件监听器等高级特性,提升用户体验。 总的来说,Java Swing 的日期时间选择控件简化了日期和时间输入,提高了数据准确性,并且提供了...
这里提到的"swing 日期选择控件"很可能是指一个第三方库,用于在Swing应用中添加日期选择功能。 `java swing`标签表明了我们讨论的是与Java Swing框架相关的编程内容。Swing是Java的一个图形用户界面(GUI)工具包...
在 Swing 中,日期控件主要用于用户交互,允许用户选择或输入日期。这些控件使得应用程序可以方便地处理与日期相关的功能,例如日程管理、事件记录等。 在Java Swing 中,最常用的日期控件是 JCalendar 和 ...
在Swing中,日期控件主要用于显示和选择日期,为用户提供直观的日期选择界面。本篇文章将深入探讨Java Swing中的日期控件,包括其功能、用法以及相关的API。 ### 1. `JDatePicker` `JDatePicker` 是Swing中最常用...
在Swing中,DatePicker是一个非常实用的控件,允许用户方便地选择日期,通常用于输入或显示日期相关的数据。在Java Swing中并没有内置的DatePicker组件,但开发者可以借助第三方库来实现这一功能,例如JCalendar。 ...
2. **自定义日期控件**:通常,Java Swing没有内置的日期选择器,但开发者可以使用诸如JCalendar、JDatePicker等第三方库,或者像这个博客中提到的那样,创建自己的日期选择组件。DateChooser.java文件很可能是这个...
swing 仿windows日期时间控件
一个简单的Java Swing时间日期选择控件的代码示例,带有中文注释 代码创建了一个简单的Java Swing时间日期选择器,包含一个输入框、一个按钮和一个日期标签。 当点击按钮时,会获取当前时间日期并显示在输入框中。 ...
通过学习和理解这个源代码,开发者不仅可以掌握如何在Swing中创建自定义日期控件,还可以了解到如何扩展基础组件以添加额外功能。这对于那些需要在Swing应用中提供高级日期选择功能的开发者来说非常有价值。 在实践...
在处理日期和时间选择时,Swing虽然没有内置的日期选择器,但可以通过第三方库来实现,例如"JDateField.jar"就是这样一个专门用于日期输入的控件。 "JDateField.jar"是一个第三方库,它提供了日期选择的功能,使得...
Java Swing 是Java编程语言中用于构建图形用户界面(GUI)的一个强大的工具包。它是对早期的Abstract Window Toolkit (AWT) 的扩展,提供了更丰富的功能和更好的平台独立性。Swing 包含了大量的组件,使得开发者可以...
在Swing中,处理日期选择的控件主要是JCalendar和JDatePicker。这两个组件可以帮助用户在界面上选择日期,并且可以方便地与应用程序的其他部分进行交互。 首先,我们来看JCalendar。JCalendar是一个非标准的Swing...
用swing做的日期控件,包含源文件和执行JAR文件。
Swing居然没有日期选择控件,在网上找了半天,要么很丑,要么就要钱,于是自己写了一个,感觉还行,呵(王婆卖瓜了)! 目前只有日期选择控件,以后扩充!
Swing日期选择控件,对原控件作了一些修改,增加了月份选择的控件。把图标换成了黑白的了,感觉彩色的太花。 xDatePicker是日期选择控件 xMonthPicker是月份选择控件
总结,使用Java Swing实现日期选择控件主要依赖于第三方库,如JCalendar或SwingX。它们提供了易于使用的DatePicker组件,并且可以方便地进行事件监听和国际化设置。对于不希望引入外部库的项目,可以考虑自定义组件...
Swing DatePicker 时间日期控件是Java Swing库中的一个重要组件,用于在GUI应用程序中提供用户友好的界面,让用户能够选择日期。这个控件通常被用在需要用户输入特定日期的场景,比如日程安排、预订系统或者任何需要...
总结,Java Swing虽然没有内置的时间控件,但通过组合现有的组件,结合第三方库,我们可以创建出功能丰富的日期和时间选择器。事件监听和回调机制使得这些控件能够与用户进行交互,并执行相应的操作。在实际开发中,...
总结来说,Swing时间选择控件为Java桌面应用提供了灵活的日期和时间输入方式。开发者可以根据项目需求选择JCalendar、JSpinner或其他自定义解决方案,并结合事件处理、布局管理和测试,构建出用户友好的时间选择功能...