- 浏览: 136999 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
古尔丹之颅:
呵呵,现在呢?
有点沉重 -
我自闲庭信步:
大哥为什么我用你的方法想打开word进行编辑的时候,程序只是将 ...
javascript word -
eye_java:
能给一两个具体点的场景吗?
soa -
流币的人:
public interface Callable<V& ...
Callable小知识 -
511543417:
Class.forName("com.mysql.j ...
java连接mysql数据库
package com.daai.test;
import javax.swing.JPanel;
import java.awt.Frame;
import java.awt.BorderLayout;
import java.awt.Point;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import javax.swing.JButton;
import com.daai.utils.DatePicker;
public class Time_test extends JDialog {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JTextField jTextField = null;
private JButton jButton = null;
/**
* @param owner
*/
public Time_test(Frame owner) {
super(owner);
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJTextField(), null);
jContentPane.add(getJButton(), null);
}
return jContentPane;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setBounds(new Rectangle(17, 40, 133, 29));
}
return jTextField;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
Point origin = new Point();
private JDialog dlg;
private DatePicker dp;
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(165, 39, 89, 27));
jButton.setText("时间选择");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if ("".equals(jTextField.getText()))
dp = new DatePicker();
else
dp = new DatePicker(stringToDate(jTextField.getText()));
dp.addComponentListener(new Listener());
final Point p = jTextField.getLocationOnScreen();
p.setLocation(p.getX(), p.getY() - 1 + jTextField.getSize().getHeight());
dlg = new JDialog(new JFrame(), true);
dlg.setTitle("选择时间");
dlg.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
origin.x = e.getX();
origin.y = e.getY();
}
});
dlg.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = dlg.getLocation();
dlg.setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y);
}
});
dlg.setLocation(p);
dlg.setResizable(false);
dlg.setUndecorated(true);
dlg.getContentPane().add(dp);
dlg.pack();
dlg.setVisible(true);
}
});
}
return jButton;
}
private static Date stringToDate(final String s) {
try {
return DateFormat.getDateInstance(DateFormat.LONG).parse(s);
} catch (ParseException e) {
return null;
}
}
final class Listener extends ComponentAdapter {
public void componentHidden(final ComponentEvent evt) {
final Date dt = ((DatePicker) evt.getSource()).getDate();
if (null != dt)
jTextField.setText(dateToString(dt));
dlg.dispose();
}
private String dateToString(final Date dt) {
if (null != dt)
return DateFormat.getDateInstance(DateFormat.LONG).format(dt);
return null;
}
}
}
上面是第一个类用来运行的,下面是第二个类
package com.daai.utils;
import java.awt.*;
import java.awt.event.*;
import java.util.GregorianCalendar;
import java.util.Date;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.FieldPosition;
import javax.swing.*;
import javax.swing.plaf.BorderUIResource;
public final class DatePicker extends JPanel {
private static final long serialVersionUID = 1L;
private static final int startX = 10;
private static final int startY = 60;
private static final Font smallFont = new Font("Dialog", Font.PLAIN, 10);
private static final Font largeFont = new Font("Dialog", Font.PLAIN, 12);
private static final Insets insets = new Insets(2, 2, 2, 2);
private static final Color highlight = new Color(255, 255, 204);
private static final Color white = new Color(255, 255, 255);
private static final Color gray = new Color(204, 204, 204);
private Component selectedDay = null;
private GregorianCalendar selectedDate = null;
private GregorianCalendar originalDate = null;
private boolean hideOnSelect = true;
private final JButton backButton = new JButton();
private final JLabel monthAndYear = new JLabel();
private final JButton forwardButton = new JButton();
private final JLabel[] dayHeadings = new JLabel[]{
new JLabel("日"),
new JLabel("一"),
new JLabel("二"),
new JLabel("三"),
new JLabel("四"),
new JLabel("五"),
new JLabel("六")};
private final JLabel[][] daysInMonth = new JLabel[][]{
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()}
};
private final JButton todayButton = new JButton();
private final JButton cancelButton = new JButton();
public DatePicker() {
super();
selectedDate = getToday();
init();
}
public DatePicker(final Date initialDate) {
super();
if (null == initialDate)
selectedDate = getToday();
else
(selectedDate = new GregorianCalendar()).setTime(initialDate);
originalDate = new GregorianCalendar(
selectedDate.get(Calendar.YEAR),
selectedDate.get(Calendar.MONTH),
selectedDate.get(Calendar.DATE));
init();
}
public boolean isHideOnSelect() {
return hideOnSelect;
}
public void setHideOnSelect(final boolean hideOnSelect) {
if (this.hideOnSelect != hideOnSelect) {
this.hideOnSelect = hideOnSelect;
initButtons(false);
}
}
public Date getDate() {
if (null != selectedDate)
return selectedDate.getTime();
return null;
}
private void init() {
setLayout(new AbsoluteLayout());
this.setMinimumSize(new Dimension(161, 226));
this.setMaximumSize(getMinimumSize());
this.setPreferredSize(getMinimumSize());
this.setBorder(new BorderUIResource.EtchedBorderUIResource());
backButton.setFont(smallFont);
backButton.setText("<");
backButton.setMargin(insets);
backButton.setDefaultCapable(false);
backButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onBackClicked(evt);
}
});
add(backButton, new AbsoluteConstraints(10, 10, 20, 20));
monthAndYear.setFont(largeFont);
monthAndYear.setHorizontalAlignment(JTextField.CENTER);
monthAndYear.setText(formatDateText(selectedDate.getTime()));
add(monthAndYear, new AbsoluteConstraints(30, 10, 100, 20));
forwardButton.setFont(smallFont);
forwardButton.setText(">");
forwardButton.setMargin(insets);
forwardButton.setDefaultCapable(false);
forwardButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onForwardClicked(evt);
}
});
add(forwardButton, new AbsoluteConstraints(130, 10, 20, 20));
int x = startX;
for (int ii = 0; ii < dayHeadings.length; ii++) {
dayHeadings[ii].setOpaque(true);
dayHeadings[ii].setBackground(Color.LIGHT_GRAY);
dayHeadings[ii].setForeground(Color.WHITE);
dayHeadings[ii].setHorizontalAlignment(JLabel.CENTER);
add(dayHeadings[ii], new AbsoluteConstraints(x, 40, 21, 21));
x += 20;
}
x = startX;
int y = startY;
for (int ii = 0; ii < daysInMonth.length; ii++) {
for (int jj = 0; jj < daysInMonth[ii].length; jj++) {
daysInMonth[ii][jj].setOpaque(true);
daysInMonth[ii][jj].setBackground(white);
daysInMonth[ii][jj].setFont(smallFont);
daysInMonth[ii][jj].setHorizontalAlignment(JLabel.CENTER);
daysInMonth[ii][jj].setText("");
daysInMonth[ii][jj].addMouseListener(new MouseAdapter() {
public void mouseClicked(final MouseEvent evt) {
onDayClicked(evt);
}
});
add(daysInMonth[ii][jj], new AbsoluteConstraints(x, y, 21, 21));
x += 20;
}
x = startX;
y += 20;
}
initButtons(true);
calculateCalendar();
}
private void initButtons(final boolean firstTime) {
if (firstTime) {
final Dimension buttonSize = new Dimension(68, 24);
todayButton.setText("今天");
todayButton.setMargin(insets);
todayButton.setMaximumSize(buttonSize);
todayButton.setMinimumSize(buttonSize);
todayButton.setPreferredSize(buttonSize);
todayButton.setDefaultCapable(true);
todayButton.setSelected(true);
todayButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onToday(evt);
}
});
cancelButton.setText("取消");
cancelButton.setMargin(insets);
cancelButton.setMaximumSize(buttonSize);
cancelButton.setMinimumSize(buttonSize);
cancelButton.setPreferredSize(buttonSize);
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onCancel(evt);
}
});
} else {
this.remove(todayButton);
this.remove(cancelButton);
}
if (hideOnSelect) {
add(todayButton, new AbsoluteConstraints(25, 190, 52, -1));
add(cancelButton, new AbsoluteConstraints(87, 190, 52, -1));
} else {
add(todayButton, new AbsoluteConstraints(55, 190, 52, -1));
}
}
private void onToday(final java.awt.event.ActionEvent evt) {
selectedDate = getToday();
setVisible(!hideOnSelect);
if (isVisible()) {
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
}
private void onCancel(final ActionEvent evt) {
selectedDate = originalDate;
setVisible(!hideOnSelect);
}
private void onForwardClicked(final java.awt.event.ActionEvent evt) {
final int day = selectedDate.get(Calendar.DATE);
selectedDate.set(Calendar.DATE, 1);
selectedDate.add(Calendar.MONTH, 1);
selectedDate.set(Calendar.DATE,
Math.min(day, calculateDaysInMonth(selectedDate)));
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
private void onBackClicked(final java.awt.event.ActionEvent evt) {
final int day = selectedDate.get(Calendar.DATE);
selectedDate.set(Calendar.DATE, 1);
selectedDate.add(Calendar.MONTH, -1);
selectedDate.set(Calendar.DATE,
Math.min(day, calculateDaysInMonth(selectedDate)));
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
private void onDayClicked(final java.awt.event.MouseEvent evt) {
final javax.swing.JLabel fld = (javax.swing.JLabel) evt.getSource();
if (!"".equals(fld.getText())) {
fld.setBackground(highlight);
selectedDay = fld;
selectedDate.set(
Calendar.DATE,
Integer.parseInt(fld.getText()));
setVisible(!hideOnSelect);
}
}
private static GregorianCalendar getToday() {
final GregorianCalendar gc = new GregorianCalendar();
gc.set(Calendar.HOUR_OF_DAY, 0);
gc.set(Calendar.MINUTE, 0);
gc.set(Calendar.SECOND, 0);
gc.set(Calendar.MILLISECOND, 0);
return gc;
}
private void calculateCalendar() {
if (null != selectedDay) {
selectedDay.setBackground(white);
selectedDay = null;
}
final GregorianCalendar c = new GregorianCalendar(
selectedDate.get(Calendar.YEAR),
selectedDate.get(Calendar.MONTH),
1);
final int maxDay = calculateDaysInMonth(c);
final int selectedDay = Math.min(maxDay, selectedDate.get(
Calendar.DATE));
int dow = c.get(Calendar.DAY_OF_WEEK);
for (int dd = 0; dd < dow; dd++) {
daysInMonth[0][dd].setText("");
}
int week;
do {
week = c.get(Calendar.WEEK_OF_MONTH);
dow = c.get(Calendar.DAY_OF_WEEK);
final JLabel fld = this.daysInMonth[week - 1][dow - 1];
fld.setText(Integer.toString(c.get(Calendar.DATE)));
if (selectedDay == c.get(Calendar.DATE)) {
fld.setBackground(highlight);
this.selectedDay = fld;
}
if (c.get(Calendar.DATE) >= maxDay)
break;
c.add(Calendar.DATE, 1);
} while (c.get(Calendar.DATE) <= maxDay);
week--;
for (int ww = week; ww < daysInMonth.length; ww++) {
for (int dd = dow; dd < daysInMonth[ww].length; dd++) {
daysInMonth[ww][dd].setText("");
}
dow = 0;
}
c.set(Calendar.DATE, selectedDay);
selectedDate = c;
}
private static int calculateDaysInMonth(final Calendar c) {
int daysInMonth = 0;
switch (c.get(Calendar.MONTH)) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
daysInMonth = 31;
break;
case 3:
case 5:
case 8:
case 10:
daysInMonth = 30;
break;
case 1:
final int year = c.get(Calendar.YEAR);
daysInMonth =
(0 == year % 1000) ? 29 :
(0 == year % 100) ? 28 :
(0 == year % 4) ? 29 : 28;
break;
}
return daysInMonth;
}
private static String formatDateText(final Date dt) {
final DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
final StringBuffer mm = new StringBuffer();
final StringBuffer yy = new StringBuffer();
final FieldPosition mmfp = new FieldPosition(DateFormat.MONTH_FIELD);
final FieldPosition yyfp = new FieldPosition(DateFormat.YEAR_FIELD);
df.format(dt, mm, mmfp);
df.format(dt, yy, yyfp);
return (mm.toString().substring(mmfp.getBeginIndex(), mmfp.getEndIndex()) +
"月 " + yy.toString().substring(yyfp.getBeginIndex(), yyfp.getEndIndex()) + "年");
}
}
import javax.swing.JPanel;
import java.awt.Frame;
import java.awt.BorderLayout;
import java.awt.Point;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import javax.swing.JButton;
import com.daai.utils.DatePicker;
public class Time_test extends JDialog {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JTextField jTextField = null;
private JButton jButton = null;
/**
* @param owner
*/
public Time_test(Frame owner) {
super(owner);
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJTextField(), null);
jContentPane.add(getJButton(), null);
}
return jContentPane;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setBounds(new Rectangle(17, 40, 133, 29));
}
return jTextField;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
Point origin = new Point();
private JDialog dlg;
private DatePicker dp;
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(165, 39, 89, 27));
jButton.setText("时间选择");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if ("".equals(jTextField.getText()))
dp = new DatePicker();
else
dp = new DatePicker(stringToDate(jTextField.getText()));
dp.addComponentListener(new Listener());
final Point p = jTextField.getLocationOnScreen();
p.setLocation(p.getX(), p.getY() - 1 + jTextField.getSize().getHeight());
dlg = new JDialog(new JFrame(), true);
dlg.setTitle("选择时间");
dlg.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
origin.x = e.getX();
origin.y = e.getY();
}
});
dlg.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = dlg.getLocation();
dlg.setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y);
}
});
dlg.setLocation(p);
dlg.setResizable(false);
dlg.setUndecorated(true);
dlg.getContentPane().add(dp);
dlg.pack();
dlg.setVisible(true);
}
});
}
return jButton;
}
private static Date stringToDate(final String s) {
try {
return DateFormat.getDateInstance(DateFormat.LONG).parse(s);
} catch (ParseException e) {
return null;
}
}
final class Listener extends ComponentAdapter {
public void componentHidden(final ComponentEvent evt) {
final Date dt = ((DatePicker) evt.getSource()).getDate();
if (null != dt)
jTextField.setText(dateToString(dt));
dlg.dispose();
}
private String dateToString(final Date dt) {
if (null != dt)
return DateFormat.getDateInstance(DateFormat.LONG).format(dt);
return null;
}
}
}
上面是第一个类用来运行的,下面是第二个类
package com.daai.utils;
import java.awt.*;
import java.awt.event.*;
import java.util.GregorianCalendar;
import java.util.Date;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.FieldPosition;
import javax.swing.*;
import javax.swing.plaf.BorderUIResource;
public final class DatePicker extends JPanel {
private static final long serialVersionUID = 1L;
private static final int startX = 10;
private static final int startY = 60;
private static final Font smallFont = new Font("Dialog", Font.PLAIN, 10);
private static final Font largeFont = new Font("Dialog", Font.PLAIN, 12);
private static final Insets insets = new Insets(2, 2, 2, 2);
private static final Color highlight = new Color(255, 255, 204);
private static final Color white = new Color(255, 255, 255);
private static final Color gray = new Color(204, 204, 204);
private Component selectedDay = null;
private GregorianCalendar selectedDate = null;
private GregorianCalendar originalDate = null;
private boolean hideOnSelect = true;
private final JButton backButton = new JButton();
private final JLabel monthAndYear = new JLabel();
private final JButton forwardButton = new JButton();
private final JLabel[] dayHeadings = new JLabel[]{
new JLabel("日"),
new JLabel("一"),
new JLabel("二"),
new JLabel("三"),
new JLabel("四"),
new JLabel("五"),
new JLabel("六")};
private final JLabel[][] daysInMonth = new JLabel[][]{
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()},
{new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel(),
new JLabel()}
};
private final JButton todayButton = new JButton();
private final JButton cancelButton = new JButton();
public DatePicker() {
super();
selectedDate = getToday();
init();
}
public DatePicker(final Date initialDate) {
super();
if (null == initialDate)
selectedDate = getToday();
else
(selectedDate = new GregorianCalendar()).setTime(initialDate);
originalDate = new GregorianCalendar(
selectedDate.get(Calendar.YEAR),
selectedDate.get(Calendar.MONTH),
selectedDate.get(Calendar.DATE));
init();
}
public boolean isHideOnSelect() {
return hideOnSelect;
}
public void setHideOnSelect(final boolean hideOnSelect) {
if (this.hideOnSelect != hideOnSelect) {
this.hideOnSelect = hideOnSelect;
initButtons(false);
}
}
public Date getDate() {
if (null != selectedDate)
return selectedDate.getTime();
return null;
}
private void init() {
setLayout(new AbsoluteLayout());
this.setMinimumSize(new Dimension(161, 226));
this.setMaximumSize(getMinimumSize());
this.setPreferredSize(getMinimumSize());
this.setBorder(new BorderUIResource.EtchedBorderUIResource());
backButton.setFont(smallFont);
backButton.setText("<");
backButton.setMargin(insets);
backButton.setDefaultCapable(false);
backButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onBackClicked(evt);
}
});
add(backButton, new AbsoluteConstraints(10, 10, 20, 20));
monthAndYear.setFont(largeFont);
monthAndYear.setHorizontalAlignment(JTextField.CENTER);
monthAndYear.setText(formatDateText(selectedDate.getTime()));
add(monthAndYear, new AbsoluteConstraints(30, 10, 100, 20));
forwardButton.setFont(smallFont);
forwardButton.setText(">");
forwardButton.setMargin(insets);
forwardButton.setDefaultCapable(false);
forwardButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onForwardClicked(evt);
}
});
add(forwardButton, new AbsoluteConstraints(130, 10, 20, 20));
int x = startX;
for (int ii = 0; ii < dayHeadings.length; ii++) {
dayHeadings[ii].setOpaque(true);
dayHeadings[ii].setBackground(Color.LIGHT_GRAY);
dayHeadings[ii].setForeground(Color.WHITE);
dayHeadings[ii].setHorizontalAlignment(JLabel.CENTER);
add(dayHeadings[ii], new AbsoluteConstraints(x, 40, 21, 21));
x += 20;
}
x = startX;
int y = startY;
for (int ii = 0; ii < daysInMonth.length; ii++) {
for (int jj = 0; jj < daysInMonth[ii].length; jj++) {
daysInMonth[ii][jj].setOpaque(true);
daysInMonth[ii][jj].setBackground(white);
daysInMonth[ii][jj].setFont(smallFont);
daysInMonth[ii][jj].setHorizontalAlignment(JLabel.CENTER);
daysInMonth[ii][jj].setText("");
daysInMonth[ii][jj].addMouseListener(new MouseAdapter() {
public void mouseClicked(final MouseEvent evt) {
onDayClicked(evt);
}
});
add(daysInMonth[ii][jj], new AbsoluteConstraints(x, y, 21, 21));
x += 20;
}
x = startX;
y += 20;
}
initButtons(true);
calculateCalendar();
}
private void initButtons(final boolean firstTime) {
if (firstTime) {
final Dimension buttonSize = new Dimension(68, 24);
todayButton.setText("今天");
todayButton.setMargin(insets);
todayButton.setMaximumSize(buttonSize);
todayButton.setMinimumSize(buttonSize);
todayButton.setPreferredSize(buttonSize);
todayButton.setDefaultCapable(true);
todayButton.setSelected(true);
todayButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onToday(evt);
}
});
cancelButton.setText("取消");
cancelButton.setMargin(insets);
cancelButton.setMaximumSize(buttonSize);
cancelButton.setMinimumSize(buttonSize);
cancelButton.setPreferredSize(buttonSize);
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
onCancel(evt);
}
});
} else {
this.remove(todayButton);
this.remove(cancelButton);
}
if (hideOnSelect) {
add(todayButton, new AbsoluteConstraints(25, 190, 52, -1));
add(cancelButton, new AbsoluteConstraints(87, 190, 52, -1));
} else {
add(todayButton, new AbsoluteConstraints(55, 190, 52, -1));
}
}
private void onToday(final java.awt.event.ActionEvent evt) {
selectedDate = getToday();
setVisible(!hideOnSelect);
if (isVisible()) {
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
}
private void onCancel(final ActionEvent evt) {
selectedDate = originalDate;
setVisible(!hideOnSelect);
}
private void onForwardClicked(final java.awt.event.ActionEvent evt) {
final int day = selectedDate.get(Calendar.DATE);
selectedDate.set(Calendar.DATE, 1);
selectedDate.add(Calendar.MONTH, 1);
selectedDate.set(Calendar.DATE,
Math.min(day, calculateDaysInMonth(selectedDate)));
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
private void onBackClicked(final java.awt.event.ActionEvent evt) {
final int day = selectedDate.get(Calendar.DATE);
selectedDate.set(Calendar.DATE, 1);
selectedDate.add(Calendar.MONTH, -1);
selectedDate.set(Calendar.DATE,
Math.min(day, calculateDaysInMonth(selectedDate)));
monthAndYear.setText(formatDateText(selectedDate.getTime()));
calculateCalendar();
}
private void onDayClicked(final java.awt.event.MouseEvent evt) {
final javax.swing.JLabel fld = (javax.swing.JLabel) evt.getSource();
if (!"".equals(fld.getText())) {
fld.setBackground(highlight);
selectedDay = fld;
selectedDate.set(
Calendar.DATE,
Integer.parseInt(fld.getText()));
setVisible(!hideOnSelect);
}
}
private static GregorianCalendar getToday() {
final GregorianCalendar gc = new GregorianCalendar();
gc.set(Calendar.HOUR_OF_DAY, 0);
gc.set(Calendar.MINUTE, 0);
gc.set(Calendar.SECOND, 0);
gc.set(Calendar.MILLISECOND, 0);
return gc;
}
private void calculateCalendar() {
if (null != selectedDay) {
selectedDay.setBackground(white);
selectedDay = null;
}
final GregorianCalendar c = new GregorianCalendar(
selectedDate.get(Calendar.YEAR),
selectedDate.get(Calendar.MONTH),
1);
final int maxDay = calculateDaysInMonth(c);
final int selectedDay = Math.min(maxDay, selectedDate.get(
Calendar.DATE));
int dow = c.get(Calendar.DAY_OF_WEEK);
for (int dd = 0; dd < dow; dd++) {
daysInMonth[0][dd].setText("");
}
int week;
do {
week = c.get(Calendar.WEEK_OF_MONTH);
dow = c.get(Calendar.DAY_OF_WEEK);
final JLabel fld = this.daysInMonth[week - 1][dow - 1];
fld.setText(Integer.toString(c.get(Calendar.DATE)));
if (selectedDay == c.get(Calendar.DATE)) {
fld.setBackground(highlight);
this.selectedDay = fld;
}
if (c.get(Calendar.DATE) >= maxDay)
break;
c.add(Calendar.DATE, 1);
} while (c.get(Calendar.DATE) <= maxDay);
week--;
for (int ww = week; ww < daysInMonth.length; ww++) {
for (int dd = dow; dd < daysInMonth[ww].length; dd++) {
daysInMonth[ww][dd].setText("");
}
dow = 0;
}
c.set(Calendar.DATE, selectedDay);
selectedDate = c;
}
private static int calculateDaysInMonth(final Calendar c) {
int daysInMonth = 0;
switch (c.get(Calendar.MONTH)) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
daysInMonth = 31;
break;
case 3:
case 5:
case 8:
case 10:
daysInMonth = 30;
break;
case 1:
final int year = c.get(Calendar.YEAR);
daysInMonth =
(0 == year % 1000) ? 29 :
(0 == year % 100) ? 28 :
(0 == year % 4) ? 29 : 28;
break;
}
return daysInMonth;
}
private static String formatDateText(final Date dt) {
final DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
final StringBuffer mm = new StringBuffer();
final StringBuffer yy = new StringBuffer();
final FieldPosition mmfp = new FieldPosition(DateFormat.MONTH_FIELD);
final FieldPosition yyfp = new FieldPosition(DateFormat.YEAR_FIELD);
df.format(dt, mm, mmfp);
df.format(dt, yy, yyfp);
return (mm.toString().substring(mmfp.getBeginIndex(), mmfp.getEndIndex()) +
"月 " + yy.toString().substring(yyfp.getBeginIndex(), yyfp.getEndIndex()) + "年");
}
}
发表评论
-
JEECG 了解感悟小过程
2013-05-19 14:52 1030相识: 第一次接触和了解jeecg的地方是ite ... -
长期更新开源项目
2012-09-05 23:09 9341。一款js库,用于处理xml 地址:http://code. ... -
eclipse几款必备的插件
2012-06-14 13:06 11701.Checkstyle CheckStyle是SourceF ... -
jad 工具
2012-06-14 10:48 953jad是eclipse的插件,,,可以反编译jar文件。 h ... -
java自带小工具 jvisualvm.exe
2011-10-27 11:23 1182JDK中还藏着一个宝贝,它的名字叫做VisualVM。Visu ... -
关于aop的功能
2011-10-15 16:50 794hi, 这个是关于异常处理的一些问题。。 ... -
groovy plugin
2011-09-08 15:39 753要先安装TestNG 1)在help->soft ... -
Struts2的深入分析
2011-07-28 09:15 739struts2的重要理解 点击这个链接,你将对str ... -
Java 中的中文编码问题
2011-07-19 15:55 648一篇很透彻的关于中文编码问题的讲解 http://www.i ... -
url传递参数中有特殊字符
2011-07-08 21:34 906有些符号在URL中是不能直接传递的,如果要在URL中传递这 ... -
Jquery AJAX POST和GET区别
2011-06-24 10:33 8981:GET访问 浏览器 认为 是等幂的 就是 一个相同的UR ... -
一个有用的快捷键
2011-06-21 16:16 647alt + tab 组合 window 系统非常的有用 可以在 ... -
ava.lang.ClassNotFoundException: org.apache.catalina.loader.DevLoader
2011-05-05 10:03 8682好多基于SSH 的旧系统还有人员在辛苦维护着 厂家给的代 ... -
myeclipse 快捷键 ctrl+o
2011-04-11 11:24 888ctrl+o,是快速搜索方法名。。 快速定位方法 ... -
java有趣的代码
2011-04-08 10:27 1265package org.java.funning; /** ... -
memcached的查看说明
2011-03-03 13:21 797memcached的查询手册,查看memcached是否安装成 ... -
netty框架的学习
2011-02-09 15:13 853netty一个socket通讯框架,由jboss公司开发 h ... -
jdk,jre,jvm
2010-12-21 13:04 805http://java-mzd.iteye.com/blog/ ... -
servlet3.0
2010-12-13 10:20 1179作为 Java EE 6 体系中重要成员的 JSR 315 规 ... -
java6 下面的exe文件
2010-12-09 17:12 1409补充详细: javac.exe ...
相关推荐
比如, Enterprise Java-Beans (EJB) container或者 Servlet engine 而这些框架一般在中小工程中我们都不会使用,会让我们把大量的时间浪费在开发框架上。 而现在比较流行开源框架,主要是struts,hibernate,spring等...
得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...
这是本人7年努力,牺牲所有业余时间得来的一个开发开源项目,具体细节文档有非常清楚的介绍,这里只说重点。 (1) BabyFish通过以扩展集合框架为主的一系列基础设施改造工作,支持ObjectModel,支持声明式的,半侵入...
Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...
使用此资源的好处:我们都知道搭建SSM项目最麻烦的就是前期进行框架的搭建,配置很麻烦很繁琐,人称配置地狱,这个模板可以为你省去大量的搭建时间,不过这其中的内容是一个很基础的项目,没有大量的功能,只有简单...
得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...
资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地...
时间-时间系统-时间系统源码-时间管理系统-时间管理系统java代码-时间系统设计与实现-基于springboot的时间系统-基于Web的时间系统设计与实现-时间网站-时间网站代码-时间平台-时间平台代码-时间项目-时间项目代码-...
Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序...
这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能...
Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序...
包括多关键字 2.1.2.2时间特性要求 在网络正常条件下,允许最迟页面生成时间为秒 2.1.2.4可靠性 使用快照缓存,允许用户在页面失效时用 2.1.2.5灵活性 2.1.3输入输出要求 中文或英文关键词 或 混用 2.1.4数据管理...
【附源码】网上购物商城系统(源码+数据库+论文+ppt)java开发ssm框架javaweb javaee项目,可做计算机毕业设计或课程设计 前台用户可以实现商品浏览,加入购物车,加入收藏,下单购买,个人信息管理,收货信息管理,...
得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...
包含基本步骤实现完整的JAVA框架搭建 1 创建web项目,创建dao包,service包,pojo包,controller包,mapper包, 2 导入架包,将架包导入到项目的lib 文件中,如图 3 导入配置文件,将如下配置文件导入到src下面 ...
基于java web开发的mes生产制造系统,该系统基于ssm框架开发,系统功能包括:系统管理、车间基础数据建模、计划管理、物料控制、生产执行、质量管理、库存管理、看板管理、数据分析等主体功能模块。广泛应用于汽车、...