- 浏览: 204576 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 622dispatcher 为默认跳转类型,用于返回一个视图资源(如 ... -
struts2拦截器(Interceptor)与传统拦截器(Filter)
2013-11-22 11:10 2183比较一下 Filter 该过滤器的方法是创建一个类XX ... -
获取mac cpu 主板信息
2013-10-17 11:13 856window 软件加密 -
java rmi
2012-01-12 13:56 720转载:http://www.cnblogs.com/ninah ... -
SNUM 学习一
2011-01-24 11:37 1423SNMP是英文“Simple Network Manageme ... -
工程编码格式转换
2010-12-10 15:28 1018由于GWT(Google Web Toolkit)需要utf- ... -
struts2 格式转换机制
2010-12-10 15:05 915一、概述 在B/S应 ... -
struts2 零配置
2010-09-08 17:27 981最近开始关注struts2的新特性,从这个版本开始,Strut ... -
struts2-convention-plugin-2.1.6.jar测试零配置
2010-09-08 15:41 1168问题是: 如果web-inf/content/test/use ... -
struts2 零配置
2010-08-27 14:46 958出处:http://javeye.iteye.co ... -
MyEclipse 性能优化
2010-07-23 16:50 872性能优化 1 、关闭MyEcl ... -
swing 初级学习(五) 拖动
2010-07-01 15:25 801http://www.jgraph.com/jgrap ... -
工程打包 jar
2010-06-29 11:31 8681.建立MANIFEST.MF (在D:\abc目录下) 以下 ... -
swing 初级学习(四)模式窗口取返回值
2010-06-12 14:45 5332javax.swing.JDialog类 a类: ... -
定时器
2010-05-06 11:56 891public static void main(Stri ... -
项目部署(一)
2010-05-05 14:23 860jar包的制作: 1。将存放文件iMsgServer2000 ... -
swing 初级学习(二)
2010-03-31 11:26 890分隔符 public static void main ... -
swing 初级学习(一)
2010-03-30 11:46 1043jframe 最大、最小、关 ... -
java 截取屏幕
2010-02-21 14:22 888package com.zzst.application.me ... -
word控件
2010-02-20 09:21 819FCKeditor -- 免费的编辑器,支持多种流览器. ...
相关推荐
java swing 日期控件 java swing 日期控件 java swing 日期控件 java swing 日期控件 java swing 日期控件
1、JAVA Swing日期选择控件datepicker 2、附带该控件的使用
使用纯java swing 编写的日期时间选择控件,免去了以前的手动输入造成的输入错误,输入丢失的不必要的错误
java Swing日期控件以及使用文档
swing 仿windows日期时间控件
java swing的日期控件
java swing DatePicker日期选择控件,包含库文件和资源文件。
用swing做的日期控件,包含源文件和执行JAR文件。
Swing居然没有日期选择控件,在网上找了半天,要么很丑,要么就要钱,于是自己写了一个,感觉还行,呵(王婆卖瓜了)! 目前只有日期选择控件,以后扩充!
JAVA Swing 日历控件 JAVA Swing 日历控件 JAVA Swing 日历控件 JAVA Swing 日历控件
Swing日期选择控件,对原控件作了一些修改,增加了月份选择的控件。把图标换成了黑白的了,感觉彩色的太花。 xDatePicker是日期选择控件 xMonthPicker是月份选择控件
JavaSwing界面设计(所有控件及示例),JavaSwing界面设计(所有控件及示例)课件,JavaSwing界面设计(所有控件及示例)PPT
从网上找到一个日期组件例子,但是不怎么好用,我又进行了二次封装。压缩包中有个DateDemo.java的演示程序;JDateField就是源代码了。代码中都写有注释,各位可以自己再做更改。
NULL 博文链接:https://zgdeng.iteye.com/blog/1405459
swing日期控件的依赖包,DatePicker,java日期控件,实现了点击输入框弹出datepicker日期插件
源代码 博文链接:https://ituser-2012.iteye.com/blog/1491584
swing.rar 窗体控件