Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package de.ipk_gatersleben.bit.bi.edal.publication;
  
  import java.awt.Color;
  import java.awt.Component;
  import java.awt.Container;
  import java.awt.Cursor;
  import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.Frame;
 import java.awt.Point;
 import java.util.Date;
 
 
DatetimePicker provides a swing panel for the user to choose Datetime.

Author(s):
chenj
arendd
Version:
2.0
 
 public class DateTimePicker extends JPanel {
 	private static final long serialVersionUID = 1L;
 	private static final Font FONT = new Font("Courier New"., 12);
 	private DateChooser dateChooser = null;
 	private Calendar showcalendar;
 	private Calendar calendar;
 	private JTextField text;
 	private JLabel label;
 
 	private static final String CENTURY = "Century";
 	private static final String DECADE = "Decade";
 	private static final String YEAR = "Year";
 	private static final String MONTH = "Month";
 	private static final String DAY = "Day";
 	private static final String HOUR = "Hour";
 	private static final String MINUTE = "Minute";
 	private static final String SECOND = "Second";
 	private static final String MILLISECOND = "Millisecond";

Constructs a DatetimePicker that is initialized with edaldate. If the parameter are null this method will initialize the DatetimePicker with current time

Parameters:
edaldate EDALDate object to show in DatetimePicker panel
 
 
 	public DateTimePicker(EdalDate edaldate) {
 		if (edaldate != null) {
 			this. = edaldate.getStartDate();
 		} else {
 			this. = Calendar.getInstance();
 		}
 		setBorder(null);
 
 		GridBagLayout gridBagLayout = new GridBagLayout();
 
 		setLayout(gridBagLayout);
 
		 = new JTextField();
		ImageIcon icon = ImageUtil.createImageIcon("dateIcon.gif",
				"choose new datetime");
		 = new JLabel(icon);
		.setToolTipText("choose new datetime");
		addComponent(thisgridBagLayout, 0, 0, 1, 1, 0.95, 1, 1, 1);
		addComponent(thisgridBagLayout, 1, 0, 1, 1, 0.05, 1, 1, 1);
			public void mouseClicked(MouseEvent e) {
				if ( == null) {
				}
				p.y = p.y + 30;
			}
		});
	}
	static void addComponent(Container contGridBagLayout gblComponent c,
			int xint yint widthint heightdouble weightx,
			double weightyint ipadxint ipady) {
		gbc.ipadx = ipadx;
		gbc.ipady = ipady;
		gbc.gridx = x;
		gbc.gridy = y;
		gbc.gridwidth = width;
		gbc.gridheight = height;
		gbc.weightx = weightx;
		gbc.weighty = weighty;
		gbc.insets = new Insets(0, 0, 0, 0);
		gbl.setConstraints(cgbc);
		cont.add(c);
	}

reset the time to current time
	public void reset() {
		this. = Calendar.getInstance();
	}

Returns the Calendar, which is selected by user.

Returns:
the Calendar, which is selected by user.
	public Calendar getCalendar() {
		return this.;
	}
	private void setDate(Date date) {
	}
	public Date getDate() {
		return this..getTime();
	}
	public class DateChooser extends JPanel implements ActionListener,
		private static final long serialVersionUID = 1L;
		int startYear = 1;
		int lastYear = 5000;
		int width = 750;
		int height = 280;
		JButton[][] daysButton = new JButton[6][7];
		public DateChooser() {
			JPanel mainPane = new JPanel();
			mainPane.setLayout(new BorderLayout());
			JPanel controlpanel = createYearAndMonthPanel();
			mainPane.add(controlpanel.);
			JPanel displaypanel = createWeekAndDayPanel();
			mainPane.add(displaypanel.);
			JPanel buttonPane = new JPanel(new FlowLayout(., 5,
					5));
			JButton savebtn = new JButton();
			JButton cancelbtn = new JButton();
			buttonPane.add(savebtn);
			buttonPane.add(cancelbtn);
			add(mainPane.);
			add(buttonPane.);
		}
			int currentYear = c.get(.);
			int currentMonth = c.get(.) + 1;
			int currentday = c.get(.);
			int currentHour = c.get(.);
			int currentMinute = c.get(.);
			int currentSecond = c.get(.);
			int currentMillisecond = c.get(.);
			JPanel result = new JPanel();
			result.setLayout(new FlowLayout());
			JLabel yearLabel = new JLabel();
			result.add(yearLabel);
			 = new JSpinner(new SpinnerNumberModel(currentYear,
			JLabel monthLabel = new JLabel();
			result.add(monthLabel);
			 = new JSpinner(new SpinnerNumberModel(currentMonth, 1,
					12, 1));
			JLabel dayLabel = new JLabel();
			result.add(dayLabel);
			 = new JSpinner(getdaymodel(currentYearcurrentMonth,
					currentday));
			result.add();
			JLabel hourLabel = new JLabel();
			result.add(hourLabel);
			 = new JSpinner(new SpinnerNumberModel(currentHour, 0,
					23, 1));
			JLabel minuteLabel = new JLabel();
			result.add(minuteLabel);
			 = new JSpinner(new SpinnerNumberModel(currentMinute,
					0, 59, 1));
			JLabel secondLabel = new JLabel();
			result.add(secondLabel);
			 = new JSpinner(new SpinnerNumberModel(currentSecond,
					0, 59, 1));
			JLabel millisecondLabel = new JLabel();
			result.add(millisecondLabel);
					currentMillisecond, 0, 999, 1));
			return result;
		}
		private SpinnerNumberModel getdaymodel(int currentYear,
				int currentMonthint currentday) {
			int minday = 1;
			int maxday = 30;
			if (currentMonth == 1 || currentMonth == 3 || currentMonth == 5
					|| currentMonth == 7 || currentMonth == 8
					|| currentMonth == 10 || currentMonth == 12) {
				maxday = 31;
else if (currentMonth == 2) {
				if (isleapyear(currentYear)) {
					maxday = 29;
else {
					maxday = 28;
				}
			}
			return new SpinnerNumberModel(currentdaymindaymaxday, 1);
		}
		private boolean isleapyear(int year) {
			if (year % 100 == 0) {
				if (year % 400 == 0) {
					return true;
				}
else {
				if (year % 4 == 0) {
					return true;
				}
			}
			return false;
		}
			String colname[] = { "Sunday""Monday""Tuesday ""Wednesday",
					"Thursday""Friday""Saturday " };
			JPanel result = new JPanel();
			result.setFont();
			result.setLayout(new GridLayout(7, 7));
			JLabel cell;
			for (int i = 0; i < 7; i++) {
				cell = new JLabel(colname[i]);
				if (i == 0 || i == 6)
				else
				result.add(cell);
			}
			int actionCommandId = 0;
			for (int i = 0; i < 6; i++)
				for (int j = 0; j < 7; j++) {
					JButton numberButton = new JButton();
					numberButton.setBorder(null);
					numberButton.setActionCommand(String
							.valueOf(actionCommandId));
					numberButton.addActionListener(this);
					numberButton.addMouseListener(this);
					if (j == 0 || j == 6)
					else
					[i][j] = numberButton;
					result.add(numberButton);
					actionCommandId++;
				}
			return result;
		}
		private JDialog createDialog(Frame owner) {
			JDialog result = new JDialog(owner"DatetimePicker"true);
			result.pack();
			result.setSize();
			return result;
		}
		private JDialog createDialog(JDialog owner) {
			JDialog result = new JDialog(owner"DatetimePicker"true);
			result.pack();
			result.setSize();
			return result;
		}
		public void showDateChooser(Point position) {
			if (SwingUtilities.getWindowAncestor(DateTimePicker.this) != null
					&& (SwingUtilities.getWindowAncestor(DateTimePicker.thisinstanceof JDialog)) {
				JDialog owner = (JDialog) SwingUtilities
				if ( == null || .getOwner() != owner)
					 = createDialog(owner);
else {
				Frame owner = (Frame) SwingUtilities
				if ( == null || .getOwner() != owner)
					 = createDialog(owner);
			}
		}
		Point getAppropriateLocation(Frame ownerPoint position) {
			Point result = new Point(position);
			Point p = owner.getLocation();
			int offsetX = (position.x + ) - (p.x + owner.getWidth());
			int offsetY = (position.y + ) - (p.y + owner.getHeight());
			if (offsetX > 0) {
				result.x -= offsetX;
			}
			if (offsetY > 0) {
				result.y -= offsetY;
			}
			return result;
		}
		Point getAppropriateLocation(JDialog ownerPoint position) {
			Point result = new Point(position);
			Point p = owner.getLocation();
			int offsetX = (position.x + ) - (p.x + owner.getWidth());
			int offsetY = (position.y + ) - (p.y + owner.getHeight());
			if (offsetX > 0) {
				result.x -= offsetX;
			}
			if (offsetY > 0) {
				result.y -= offsetY;
			}
			return result;
		}
		private Calendar getCalendar() {
			if ( == null) {
				 = Calendar.getInstance();
			}
			return ;
		}
		private int getSelectedYear() {
		}
		private int getSelectedMonth() {
		}
		private int getSelectedDay() {
		}
		private int getSelectedHour() {
		}
		private int getSelectedMinite() {
		}
		private int getSelectedSecond() {
		}
		private int getSelectedMillisecond() {
		}
		private void flushWeekAndDay() {
			int dayNo = 2 - c.get(.);
			for (int i = 0; i < 6; i++) {
				for (int j = 0; j < 7; j++) {
					String s = "";
					if (dayNo >= 1 && dayNo <= maxDayNo)
						s = String.valueOf(dayNo);
					dayNo++;
					if (j == 0 || j == 6)
					else
				}
			}
		}
		private void refreshdayspin(int currentYearint currentMonth,
				int currentday) {
			.setModel(getdaymodel(currentYearcurrentMonth,
					currentday));
		}
		public void stateChanged(ChangeEvent e) {
			JSpinner source = (JSpinnere.getSource();
			if (source.getName().equals()) {
				return;
			}
			if (source.getName().equals()) {
				return;
			}
			if (source.getName().equals()) {
				return;
			}
			if (source.getName().equals()) {
				return;
			}
			if (source.getName().equals()) {
				return;
			}
			if (source.getName().equals()) {
else if (source.getName().equals()) {
			}
		}
		private void changeSpinnerStatus(boolean enableYearSpinner,
				boolean enableMonthSpinnerboolean enableDaySpinner,
				boolean enableHourSpinnerboolean enableMinuteSpinner,
				boolean enableSecondSpinnerboolean enableMillisecondSpinner,
				boolean enableDisplayButtons) {
			.setEnabled(enableYearSpinner);
			.setEnabled(enableMonthSpinner);
			.setEnabled(enableDaySpinner);
			.setEnabled(enableHourSpinner);
			.setEnabled(enableMinuteSpinner);
			.setEnabled(enableSecondSpinner);
			.setEnabled(enableMillisecondSpinner);
		}
		public void actionPerformed(ActionEvent e) {
			String classname = e.getSource().getClass().getName();
			if (classname.equals("javax.swing.JButton")) {
				JButton source = (JButtone.getSource();
				if (source.getText().length() == 0)
					return;
				int newDay = Integer.parseInt(source.getText());
				.setValue(Integer.valueOf(newDay));
else if (classname.equals("javax.swing.JRadioButton")) {
				if (source.isSelected()) {
					switch (source.getText()) {
					case :
						changeSpinnerStatus(falsefalsefalsefalsefalse,
								falsefalsefalse);
						break;
					case :
						changeSpinnerStatus(falsefalsefalsefalsefalse,
								falsefalsefalse);
						break;
					case :
						changeSpinnerStatus(truefalsefalsefalsefalse,
								falsefalsefalse);
						break;
					case :
						changeSpinnerStatus(truetruefalsefalsefalse,
								falsefalsefalse);
						break;
					case :
						changeSpinnerStatus(truetruetruefalsefalse,
								falsefalsetrue);
						break;
					case :
						changeSpinnerStatus(truetruetruetruefalse,
								falsefalsetrue);
						break;
					case :
						changeSpinnerStatus(truetruetruetruetrue,
								falsefalsetrue);
						break;
					case :
						changeSpinnerStatus(truetruetruetruetruetrue,
								falsetrue);
						break;
						changeSpinnerStatus(truetruetruetruetruetrue,
								truetrue);
						break;
					default:
						break;
					}
				}
			}
		}
		private void enabledisplaybuttons(boolean enable) {
			for (int i = 0; i < .i++) {
				for (int j = 0; j < [i].lengthj++) {
					[i][j].setEnabled(enable);
				}
			}
		}
		private void refreshtime() {
			if ( == null) {
			}
		}
			private static final long serialVersionUID = 1L;
			public void actionPerformed(ActionEvent e) {
			}
		};
			private static final long serialVersionUID = 1L;
			public void actionPerformed(ActionEvent e) {
			}
		};
		public void mouseClicked(MouseEvent e) {
			JButton source = (JButtone.getSource();
			if (source.getText().length() == 0)
				return;
			int newDay = Integer.parseInt(source.getText());
			.setValue(Integer.valueOf(newDay));
		}
		public void mouseEntered(MouseEvent e) {
		}
		public void mouseExited(MouseEvent e) {
		}
		public void mousePressed(MouseEvent e) {
		}
		public void mouseReleased(MouseEvent e) {
		}
			return new WindowAdapter() {
				public void windowClosing(final WindowEvent we) {
				}
			};
		}
	}