utcalendar.java#1.1.1.1

来自「数据库远程同步软件NetBeans项目源文件 项目采用Jdesktop集成组件」· 1 代码 · 共 635 行 · 第 1/2 页

1
635
字号
  }
  }

  public   UTCalendar()
  {
  this(true);
  }

  public   UTCalendar(boolean   bPopup)
  {
  calendar   =   new   GregorianCalendar();
  calendar.setTime(new   Date());
  calendar.set(11,   0);
  calendar.set(12,   0);
  calendar.set(13,   0);
  calendar.set(14,   0);
  if   (bPopup)
  {
  text   =   new   JTextField();
  text.setEditable(false);
  text.setBackground(Color.white);
  text.setText(df_all.format(calendar.getTime()));
  arrow   =   new   BasicArrowButton(5);
  arrow.addActionListener(this);
  setLayout(null);
  add(text);
  add(arrow);
  popup   =   new   JPopupMenu();
  createCalendar(popup);
  }
  else
  {
  setBorder(BorderUIResource.getEtchedBorderUIResource());
  setLayout(new   DefaultMenuLayout(this,   1));
  createCalendar(this);
  setupCalendar();
  }
  time.setHours(calendar.get(11));
  time.setMinutes(calendar.get(12));
  }

  public   Dimension   getPreferredSize()
  {
  if   (text   !=   null)
  {
  Dimension   txtDim   =   text.getPreferredSize();
  return   new   Dimension(
  (int)   ((double)   txtDim.width   *   1.2D)   +   arrow.getPreferredSize().width,
  txtDim.height);
  }
  else
  {
  return   new   Dimension(200,   168);
  }
  }

  public   void   setEnabled(boolean   enable)
  {
  super.setEnabled(enable);
  enable   &=   text   !=   null;
  popup.setEnabled(enable);
  arrow.setEnabled(enable);
  text.setEnabled(enable);
  }

  public   void   setDate(Date   date)
  {
  calendar.setTime(date);
  calendar.set(13,   0);
  calendar.set(14,   0);
  setupCalendar();
  time.setHours(calendar.get(11));
  time.setMinutes(calendar.get(12));
  }

  public   Date   getDate()
  {
  calendar.set(11,   time.getHours());
  calendar.set(12,   time.getMinutes());
  return   calendar.getTime();
  }

  public   void   setBounds(int   x,   int   y,   int   width,   int   height)
  {
  super.setBounds(x,   y,   width,   height);
  if   (popup   !=   null)
  {
  int   w   =   arrow.getPreferredSize().width;
  text.setSize(width   -   w,   height);
  arrow.setSize(w,   height);
  text.setLocation(0,   0);
  arrow.setLocation(width   -   w,   0);
  }
  }

  private   void   createCalendar(JComponent   panel)
  {
  JPanel   topPanel   =   new   JPanel(new   BorderLayout());
  topPanel.setBackground(Color.lightGray);
  title   =   new   JLabel();
  title.setHorizontalAlignment(0);
  title.setFont(new   Font("SansSerif",   1,   12));
  title.setForeground(Color.black);
  topPanel.add(title,   "Center");
  prev   =   new   BasicArrowButton(7);
  prev.addActionListener(this);
  topPanel.add(prev,   "West");
  next   =   new   BasicArrowButton(3);
  next.addActionListener(this);
  topPanel.add(next,   "East");
  JPanel   bottomPanel   =   new   JPanel(new   GridLayout(7,   7));
  bottomPanel.setBackground(Color.white);
  javax.swing.border.Border   border   =   new   EmptyBorder(1,   6,   1,   6);
  Font   font   =   new   Font("SansSerif",   0,   10);
  DateFormatSymbols   dfs   =   new   DateFormatSymbols();
  dfs.getMonths();
  String   dayNames[]   =   dfs.getShortWeekdays();
  for   (int   i   =   1;   i   <=   7;   i++)
  {
  JLabel   d   =   new   JLabel(dayNames[i]);
  d.setFont(font);
  d.setForeground(Color.black);
  bottomPanel.add(d);
  }

  days   =   new   JButton[6][7];
  for   (int   r   =   0;   r   <   6;   r++)
  {
  for   (int   c   =   0;   c   <   7;   c++)
  {
  JButton   b   =   new   JButton();
  b.addActionListener(this);
  b.setBorder(border);
  b.setFont(font);
  b.setBackground(Color.white);
  bottomPanel.add(b);
  days[r][c]   =   b;
  }

  }

  panel.add(topPanel);
  panel.add(bottomPanel);
  JPanel   timePanel   =   new   JPanel(new   BorderLayout(1,   1));
  timePanel.setBackground(Color.white);
  JLabel   l   =   new   JLabel("   ");
  timePanel.add(l,   "Center");
  time   =   new   Time();
  panel.add(timePanel);
  }

  private   void   setupCalendar()
  {
  Date   date   =   calendar.getTime();
  title.setText(df_my.format(date));
  day   =   calendar.get(5);
  month   =   calendar.get(2);
  year   =   calendar.get(1);
  calendar.set(5,   1);
  int   firstDay   =   calendar.get(7);
  calendar.set(5,   day);
  int   maxDays   =   calendar.getActualMaximum(5);
  int   c   =   firstDay   -   1;
  int   r   =   0;
  for   (int   i   =   0;   i   <   c;   i++)
  days[0][i].setVisible(false);

  for   (int   i   =   1;   i   <=   maxDays;   i++)
  {
  label0   :   {
  if   (c   ==   7)
  {
  c   =   0;
  r++;
  }
  days[r][c].setText(""   +   i);
  if   (year   ==   calendar.get(1))
  {
  if   (month   ==   calendar.get(2)   &&   i   ==   day)
  {
  days[r][c].setForeground(Color.red);
  break   label0;
  }
  }
  days[r][c].setForeground(Color.black);
  }
  days[r][c].setVisible(true);
  c++;
  }

  while   (r   <   6)
  {
  while   (c   <   7)
  {
  days[r][c].setVisible(false);
  c++;
  }

  r++;
  c   =   0;
  }

  if   (popup   !=   null)
  text.setText(df_all.format(date));
  }

  public   void   actionPerformed(ActionEvent   e)
  {
  Object   source   =   e.getSource();
  if   (source   ==   arrow)
  {
  setupCalendar();
  popup.show(this,   0,   getHeight());
  }
  else
  if   (source   ==   next)
  {
  calendar.set(2,   calendar.get(2)   +   1);
  setupCalendar();
  }
  else
  if   (source   ==   prev)
  {
  calendar.set(2,   calendar.get(2)   -   1);
  setupCalendar();
  }
  else
  {
  JButton   b   =   (JButton)   source;
  day   =   Integer.parseInt(b.getText());
  month   =   calendar.get(2);
  year   =   calendar.get(1);
  calendar.set(5,   day);
  setupCalendar();
  if   (popup   !=   null)
  popup.setVisible(false);
  fireActionPerformed();
  }
  }

  public   void   addActionListener(ActionListener   l)
  {
  listenerList.add(
  class$java$awt$event$ActionListener   !=   null
  ?   class$java$awt$event$ActionListener
  :   (class$java$awt$event$ActionListener   =
  class1("java.awt.event.ActionListener")),
  l);
  }

  public   void   removeActionListener(ActionListener   l)
  {
  listenerList.remove(
  class$java$awt$event$ActionListener   !=   null
  ?   class$java$awt$event$ActionListener
  :   (class$java$awt$event$ActionListener   =
  class1("java.awt.event.ActionListener")),
  l);
  }

  protected   void   fireActionPerformed()
  {
  Object   listeners[]   =   listenerList.getListenerList();
  ActionEvent   e   =   null;
  for   (int   i   =   listeners.length   -   2;   i   >=   0;   i   -=   2)
  if   (listeners[i]
  ==   (class$java$awt$event$ActionListener   !=   null
  ?   class$java$awt$event$ActionListener
  :   (class$java$awt$event$ActionListener   =
  class1("java.awt.event.ActionListener"))))
  {
  if   (e   ==   null)
  e   =   new   ActionEvent(this,   1001,   "Set");
  ((ActionListener)   listeners[i   +   1]).actionPerformed(e);
  }

  }

  static   Class   class1(String   x0)
  {
  try
  {
  return   Class.forName(x0);
  }
  catch   (ClassNotFoundException   x1)
  {
  throw   new   NoClassDefFoundError(x1.getMessage());
  }
  }

  private   static   DateFormat   df_all   =   DateFormat.getDateInstance(2);
  private   static   SimpleDateFormat   df_my   =   new   SimpleDateFormat("MMMM   yyyy");
  private   JPopupMenu   popup;
  private   JLabel   title;
  private   JTextField   text;
  private   JButton   days[][];
  private   BasicArrowButton   arrow;
  private   BasicArrowButton   prev;
  private   BasicArrowButton   next;
  private   java.util.Calendar   calendar;
  private   Time   time;
  private   int   day;
  private   int   month;
  private   int   year;
  static   Class   class$java$awt$event$ActionListener;   /*   synthetic   field   */

      public   static   void   main(String[]   args)
  {
  JFrame   frm   =   new   JFrame();
  frm.getContentPane().add(new   UTCalendar());
  frm.setBounds(100,   100,   400,   300);
  frm.setVisible(true);
  }
  }


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?