⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jncalendarpanel.java

📁 Memoranda( 从前以jNotes2而闻名) 是一个日志管理和个人项目管理工具
💻 JAVA
字号:
package net.sf.memoranda.ui;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.util.Calendar;import java.util.Enumeration;import java.util.Vector;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.BorderFactory;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JPanel;import javax.swing.JSpinner;import javax.swing.JToolBar;import javax.swing.KeyStroke;import javax.swing.SpinnerNumberModel;import javax.swing.border.Border;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import net.sf.memoranda.CurrentProject;import net.sf.memoranda.NoteList;import net.sf.memoranda.Project;import net.sf.memoranda.ProjectListener;import net.sf.memoranda.ResourcesList;import net.sf.memoranda.TaskList;import net.sf.memoranda.date.CalendarDate;import net.sf.memoranda.date.CurrentDate;import net.sf.memoranda.util.Local;/** *  * Copyright (c) 2003 Memoranda Team. http://memoranda.sf.net *//*$Id: JNCalendarPanel.java,v 1.9 2004/04/05 10:05:44 alexeya Exp $*/public class JNCalendarPanel extends JPanel {  CalendarDate _date = CurrentDate.get();  JToolBar navigationBar = new JToolBar();  JPanel mntyPanel = new JPanel(new BorderLayout());  JPanel navbPanel = new JPanel(new BorderLayout());  JButton dayForwardB = new JButton();  JPanel dayForwardBPanel = new JPanel();  JButton todayB = new JButton();  JPanel todayBPanel = new JPanel();  JPanel dayBackBPanel = new JPanel();  JButton dayBackB = new JButton();  JComboBox monthsCB = new JComboBox(Local.getMonthNames());  BorderLayout borderLayout4 = new BorderLayout();  JNCalendar jnCalendar = new JNCalendar(CurrentDate.get());  JPanel jnCalendarPanel = new JPanel();  BorderLayout borderLayout5 = new BorderLayout();  JSpinner yearSpin = new JSpinner(new SpinnerNumberModel(jnCalendar.get().getYear(), 1980, 2999, 1));  JSpinner.NumberEditor yearSpinner = new JSpinner.NumberEditor(yearSpin, "####");  boolean ignoreChange = false;  private Vector selectionListeners = new Vector();  Border border1;  Border border2;  public JNCalendarPanel() {    try {      jbInit();    }    catch(Exception ex) {      new ExceptionDialog(ex);    }  }  public Action dayBackAction =        new AbstractAction(            "Go one day back",            new ImageIcon(net.sf.memoranda.ui.AppFrame.class.getResource("resources/icons/back16.png"))) {        public void actionPerformed(ActionEvent e) {            dayBackB_actionPerformed(e);        }  };    public Action dayForwardAction =        new AbstractAction(            "Go one day forward",            new ImageIcon(net.sf.memoranda.ui.AppFrame.class.getResource("resources/icons/forward16.png"))) {        public void actionPerformed(ActionEvent e) {            dayForwardB_actionPerformed(e);        }  };    public Action todayAction =        new AbstractAction(            "Go to today",            new ImageIcon(net.sf.memoranda.ui.AppFrame.class.getResource("resources/icons/today16.png"))) {        public void actionPerformed(ActionEvent e) {            todayB_actionPerformed(e);        }  };        void jbInit() throws Exception {    //dayBackAction.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, KeyEvent.ALT_MASK));    //dayForwardAction.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, KeyEvent.ALT_MASK));    todayAction.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_HOME, KeyEvent.ALT_MASK));        monthsCB.setRequestFocusEnabled(false);    monthsCB.setMaximumRowCount(12);    monthsCB.setPreferredSize(new Dimension(50 , 20));    border1 = BorderFactory.createEmptyBorder(0,0,5,0);    border2 = BorderFactory.createEmptyBorder();    this.setLayout(new BorderLayout());    navigationBar.setFloatable(false);    dayForwardB.setAction(dayForwardAction);    dayForwardB.setMinimumSize(new Dimension(24, 24));    dayForwardB.setOpaque(false);    dayForwardB.setPreferredSize(new Dimension(24, 24));    dayForwardB.setRequestFocusEnabled(false);    dayForwardB.setBorderPainted(false);    dayForwardB.setFocusPainted(false);    dayForwardB.setIcon(new ImageIcon(net.sf.memoranda.ui.AppFrame.class.getResource("resources/icons/forward.png")));    dayForwardB.setText("");    dayForwardB.setToolTipText(Local.getString("One day forward"));        dayForwardBPanel.setAlignmentX((float) 0.0);    dayForwardBPanel.setMinimumSize(new Dimension(40, 24));    dayForwardBPanel.setOpaque(false);    dayForwardBPanel.setPreferredSize(new Dimension(40, 24));        todayB.setAction(todayAction);    todayB.setMinimumSize(new Dimension(24, 24));    todayB.setOpaque(false);    todayB.setPreferredSize(new Dimension(24, 24));    todayB.setRequestFocusEnabled(false);    todayB.setBorderPainted(false);    todayB.setFocusPainted(false);    todayB.setIcon(new ImageIcon(net.sf.memoranda.ui.AppFrame.class.getResource("resources/icons/today.png")));    todayB.setText("");    todayB.setToolTipText(Local.getString("To today"));        dayBackBPanel.setAlignmentX((float) 1.5);    dayBackBPanel.setMinimumSize(new Dimension(40, 24));    dayBackBPanel.setOpaque(false);    dayBackBPanel.setPreferredSize(new Dimension(40, 24));        dayBackB.setAction(dayBackAction);    dayBackB.setMinimumSize(new Dimension(24, 24));    dayBackB.setOpaque(false);    dayBackB.setPreferredSize(new Dimension(24, 24));    dayBackB.setRequestFocusEnabled(false);    dayBackB.setToolTipText("");    dayBackB.setBorderPainted(false);    dayBackB.setFocusPainted(false);    dayBackB.setIcon(new ImageIcon(net.sf.memoranda.ui.AppFrame.class.getResource("resources/icons/back.png")));    dayBackB.setText("");    dayBackB.setToolTipText(Local.getString("One day back"));        yearSpin.setPreferredSize(new Dimension(70, 20));    yearSpin.setRequestFocusEnabled(false);	yearSpin.setEditor(yearSpinner);    navbPanel.setMinimumSize(new Dimension(202, 30));    navbPanel.setOpaque(false);    navbPanel.setPreferredSize(new Dimension(155, 30));    jnCalendar.getTableHeader().setFont(new java.awt.Font("Dialog", 1, 10));    jnCalendar.setFont(new java.awt.Font("Dialog", 0, 10));    jnCalendar.setGridColor(Color.lightGray);    jnCalendarPanel.setLayout(borderLayout5);    todayBPanel.setMinimumSize(new Dimension(68, 24));    todayBPanel.setOpaque(false);    todayBPanel.setPreferredSize(new Dimension(51, 24));    this.add(navigationBar, BorderLayout.NORTH);    navigationBar.add(navbPanel, null);    navbPanel.add(dayBackBPanel, BorderLayout.WEST);    dayBackBPanel.add(dayBackB, null);    navbPanel.add(todayBPanel, BorderLayout.CENTER);    todayBPanel.add(todayB, null);    navbPanel.add(dayForwardBPanel, BorderLayout.EAST);    dayForwardBPanel.add(dayForwardB, null);    this.add(mntyPanel,  BorderLayout.SOUTH);    mntyPanel.add(monthsCB, BorderLayout.CENTER);    mntyPanel.add(yearSpin,  BorderLayout.EAST);    this.add(jnCalendarPanel,  BorderLayout.CENTER);    jnCalendar.getTableHeader().setPreferredSize(new Dimension(200, 15));    jnCalendarPanel.add(jnCalendar.getTableHeader(), BorderLayout.NORTH);    jnCalendarPanel.add(jnCalendar, BorderLayout.CENTER);    jnCalendar.addSelectionListener(new ActionListener()  {      public void actionPerformed(ActionEvent e) {        setCurrentDateDay(jnCalendar.get(), jnCalendar.get().getDay());      }    });    /*CurrentDate.addChangeListener(new ActionListener()  {      public void actionPerformed(ActionEvent e) {        _date = CurrentDate.get();        refreshView();      }    });*/    monthsCB.setFont(new java.awt.Font("Dialog", 0, 11));    monthsCB.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        monthsCB_actionPerformed(e);      }    });    yearSpin.addChangeListener(new ChangeListener() {      public void stateChanged(ChangeEvent e) {        yearSpin_actionPerformed();      }    });    CurrentProject.addProjectListener(new ProjectListener() {            public void projectChange(Project p, NoteList nl, TaskList tl, ResourcesList rl) {}            public void projectWasChanged() {                jnCalendar.updateUI();            }        });    refreshView();    yearSpin.setBorder(border2);      }  public void set(CalendarDate date) {    _date = date;    refreshView();  }  public CalendarDate get() {    return _date;  }  public void addSelectionListener(ActionListener al) {        selectionListeners.add(al);    }  private void notifyListeners() {        for (Enumeration en = selectionListeners.elements(); en.hasMoreElements();)             ((ActionListener) en.nextElement()).actionPerformed(new ActionEvent(this, 0, "Calendar event"));  }  private void setCurrentDateDay(CalendarDate dt, int d) {    if (ignoreChange) return;    if (_date.equals(dt)) return;    _date = new CalendarDate(d, _date.getMonth(), _date.getYear());    notifyListeners();  }  private void refreshView() {    ignoreChange = true;    jnCalendar.set(_date);    monthsCB.setSelectedIndex(_date.getMonth());    yearSpin.setValue(new Integer(_date.getYear()));    ignoreChange = false;  }  void monthsCB_actionPerformed(ActionEvent e) {    if (ignoreChange) return;    _date = new CalendarDate(_date.getDay(), monthsCB.getSelectedIndex(), _date.getYear());    jnCalendar.set(_date);    notifyListeners();  }  void yearSpin_actionPerformed() {    if (ignoreChange) return;    _date = new CalendarDate(_date.getDay(), _date.getMonth(), ((Integer)yearSpin.getValue()).intValue());    jnCalendar.set(_date);    notifyListeners();  }  void dayBackB_actionPerformed(ActionEvent e) {    Calendar cal = _date.getCalendar();    cal.add(Calendar.DATE, -1); cal.getTime();    _date = new CalendarDate(cal);    refreshView();    notifyListeners();  }  void todayB_actionPerformed(ActionEvent e) {    _date = CalendarDate.today();    refreshView();    notifyListeners();  }  void dayForwardB_actionPerformed(ActionEvent e) {    Calendar cal = _date.getCalendar();    cal.add(Calendar.DATE, 1); cal.getTime();    _date = new CalendarDate(cal);    refreshView();    notifyListeners();  }}

⌨️ 快捷键说明

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