📄 holidaycalendardemo.java
字号:
/* * NachoCalendar * * Project Info: http://nachocalendar.sf.net * * This library is free software; you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc. * in the United States and other countries.] * * Changes * ------- * * CalendarDemo.java * * Created on August 14, 2004, 6:57 AM */package net.sf.nachocalendar.demo;import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.EOFException;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.text.DateFormatSymbols;import java.util.Calendar;import java.util.Date;import javax.swing.DefaultListModel;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JSpinner;import javax.swing.SpinnerNumberModel;import javax.swing.event.ChangeListener;import net.sf.nachocalendar.components.CalendarPanel;import net.sf.nachocalendar.components.DateField;import net.sf.nachocalendar.components.DatePanel;import net.sf.nachocalendar.holidays.DefaultHoliDay;import net.sf.nachocalendar.holidays.HoliDay;import net.sf.nachocalendar.holidays.HoliDayCalendarFactory;import net.sf.nachocalendar.holidays.HoliDayModel;/** * Demo app used to show the package features * @author Ignacio Merani */public class HolidayCalendarDemo extends JDialog { private HoliDayModel model; private CalendarPanel cp; //private Collection holidays; private DateField datefield; private DatePanel setter; private DefaultListModel listmodel; private boolean[] workingdays = {false, true, true, true, true, true, true}; private String[] days; private ChangeListener cpListener; private DefaultListModel listamodel; /** Creates new form HolidayCalendarDemo */ public HolidayCalendarDemo(JFrame parent, boolean modal) { super(parent, modal); listamodel = new DefaultListModel(); DateFormatSymbols symbols = new DateFormatSymbols(); days = symbols.getShortWeekdays(); for (int i=1; i < days.length; i++) { days[i] = days[i].substring(0,1).toUpperCase() + days[i].substring(1).toLowerCase(); } //holidays = new ArrayList(); cp = HoliDayCalendarFactory.createCalendarPanel(); datefield = HoliDayCalendarFactory.createDateField(); setter = HoliDayCalendarFactory.createDatePanel(); setter.setModel(cp.getModel()); setter.setRenderer(cp.getRenderer()); cp.setMinimalDaysInFirstWeek(4); listmodel = new DefaultListModel(); initComponents(); dlista.setModel(listamodel); cSelection.setSelectedIndex(2); lista.setModel(listmodel); model = (HoliDayModel) cp.getModel(); getContentPane().add(cp, BorderLayout.WEST); updateWorking(); createListeners(); cp.addChangeListener(cpListener); pack(); setLocationRelativeTo(parent); } private void createListeners() { setter.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { cp.setValues(setter.getValues()); } }); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; javax.swing.JLabel jLabel1; javax.swing.JLabel jLabel2; javax.swing.JPanel jPanel1; javax.swing.JPanel jPanel2; javax.swing.JPanel jPanel3; javax.swing.JPanel jPanel5; javax.swing.JScrollPane jScrollPane3; orientationGroup = new javax.swing.ButtonGroup(); scrollGroup = new javax.swing.ButtonGroup(); yearGroup = new javax.swing.ButtonGroup(); firstDayGroup = new javax.swing.ButtonGroup(); jScrollPane2 = new javax.swing.JScrollPane(); jPanel1 = new javax.swing.JPanel(); jSeparator2 = new javax.swing.JSeparator(); jLabel1 = new javax.swing.JLabel(); tName = new javax.swing.JTextField(); jScrollPane3 = new javax.swing.JScrollPane(); lista = new javax.swing.JList(); jLabel2 = new javax.swing.JLabel(); jPanel3 = datefield; recurrent = new javax.swing.JCheckBox(); bAdd = new javax.swing.JButton(); bRemove = new javax.swing.JButton(); bLoad = new javax.swing.JButton(); bSave = new javax.swing.JButton(); jSeparator1 = new javax.swing.JSeparator(); jPanel4 = new javax.swing.JPanel(); cSun = new javax.swing.JCheckBox(); cMon = new javax.swing.JCheckBox(); cTue = new javax.swing.JCheckBox(); cWed = new javax.swing.JCheckBox(); cThu = new javax.swing.JCheckBox(); cFri = new javax.swing.JCheckBox(); cSat = new javax.swing.JCheckBox(); bUpdate = new javax.swing.JButton(); jPanel7 = new javax.swing.JPanel(); jLabel5 = new javax.swing.JLabel(); cVertical = new javax.swing.JRadioButton(); cHorizontal = new javax.swing.JRadioButton(); jLabel6 = new javax.swing.JLabel(); cScrollUp = new javax.swing.JRadioButton(); cScrollDown = new javax.swing.JRadioButton(); jLabel7 = new javax.swing.JLabel(); cYearUp = new javax.swing.JRadioButton(); cYearDown = new javax.swing.JRadioButton(); jLabel8 = new javax.swing.JLabel(); cSunday = new javax.swing.JRadioButton(); cMonday = new javax.swing.JRadioButton(); jLabel9 = new javax.swing.JLabel(); cSelection = new javax.swing.JComboBox(); cAntiAliased = new javax.swing.JCheckBox(); cEnabled = new javax.swing.JCheckBox(); cEternal = new javax.swing.JCheckBox(); cShowToday = new javax.swing.JCheckBox(); cShowMoon = new javax.swing.JCheckBox(); jPanel8 = new javax.swing.JPanel(); bRefresh = new javax.swing.JButton(); sPanels = new JSpinner(new SpinnerNumberModel(3,1,12,1)); jLabel3 = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); bExit = new javax.swing.JButton(); jPanel6 = new javax.swing.JPanel(); jLabel4 = new javax.swing.JLabel(); jPanel5 = setter; jPanel9 = new javax.swing.JPanel(); bGetValue = new javax.swing.JButton(); bGetValues = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); dlista = new javax.swing.JList(); FormListener formListener = new FormListener(); setTitle("NachoCalendar Demo"); addWindowListener(formListener); jPanel1.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; jPanel1.add(jSeparator2, gridBagConstraints); jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel1.setText("Name"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(jLabel1, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(tName, gridBagConstraints); lista.addListSelectionListener(formListener); jScrollPane3.setViewportView(lista); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.gridheight = 7; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(jScrollPane3, gridBagConstraints); jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel2.setText("Date"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(jLabel2, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(jPanel3, gridBagConstraints); recurrent.setText("Recurrent"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(recurrent, gridBagConstraints); bAdd.setText("Add"); bAdd.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(bAdd, gridBagConstraints); bRemove.setText("Remove"); bRemove.setEnabled(false); bRemove.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(bRemove, gridBagConstraints); bLoad.setText("Load"); bLoad.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(bLoad, gridBagConstraints); bSave.setText("Save"); bSave.addActionListener(formListener); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel1.add(bSave, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; jPanel1.add(jSeparator1, gridBagConstraints); jPanel4.setLayout(new java.awt.GridBagLayout()); jPanel4.setBorder(new javax.swing.border.TitledBorder("Working Days")); cSun.setText(days[1]); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel4.add(cSun, gridBagConstraints); cMon.setSelected(true); cMon.setText(days[2]); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel4.add(cMon, gridBagConstraints); cTue.setSelected(true); cTue.setText(days[3]); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); jPanel4.add(cTue, gridBagConstraints); cWed.setSelected(true); cWed.setText(days[4]); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -