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

📄 timedatepanel.java

📁 一个完整的XACML工程,学习XACML技术的好例子!
💻 JAVA
字号:
/*
* Copyright (c) 2006, University of Kent
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without 
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this 
* list of conditions and the following disclaimer.
* 
* Redistributions in binary form must reproduce the above copyright notice, 
* this list of conditions and the following disclaimer in the documentation 
* and/or other materials provided with the distribution. 
*
* 1. Neither the name of the University of Kent nor the names of its 
* contributors may be used to endorse or promote products derived from this 
* software without specific prior written permission. 
*
* 2. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS  
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
* PURPOSE ARE DISCLAIMED. 
*
* 3. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
* POSSIBILITY OF SUCH DAMAGE.
*
* 4. YOU AGREE THAT THE EXCLUSIONS IN PARAGRAPHS 2 AND 3 ABOVE ARE REASONABLE
* IN THE CIRCUMSTANCES.  IN PARTICULAR, YOU ACKNOWLEDGE (1) THAT THIS
* SOFTWARE HAS BEEN MADE AVAILABLE TO YOU FREE OF CHARGE, (2) THAT THIS
* SOFTWARE IS NOT "PRODUCT" QUALITY, BUT HAS BEEN PRODUCED BY A RESEARCH
* GROUP WHO DESIRE TO MAKE THIS SOFTWARE FREELY AVAILABLE TO PEOPLE WHO WISH
* TO USE IT, AND (3) THAT BECAUSE THIS SOFTWARE IS NOT OF "PRODUCT" QUALITY
* IT IS INEVITABLE THAT THERE WILL BE BUGS AND ERRORS, AND POSSIBLY MORE
* SERIOUS FAULTS, IN THIS SOFTWARE.
*
* 5. This license is governed, except to the extent that local laws
* necessarily apply, by the laws of England and Wales.
*/

/*
 * TimeDatePanel.java - 05/07/2006
 */

package issrg.editor2.timedate;

import issrg.acm.DateChooser;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**
 *
 * @author Christian Azzopardi
 */
public class TimeDatePanel extends JPanel implements ActionListener, ChangeListener
{
    private GridBagConstraints constraints;
    
    private JLabel captionDate;
    
    private JTextField dateEditor;
    
    private JButton dateChooser;
    private JButton anyDay;
    
    private JFrame owner;
    
    private String dateTime;
    
    private TimePanel timePanel;
    
    ResourceBundle rbl = ResourceBundle.getBundle("issrg/editor2/PEComponent_i18n");
    String dateStr = rbl.getString("TimeDatePanel_Date"); //contains Date
    String chooseStr = rbl.getString("TimeDatePanel_Button_Choose"); //contains Choose...
    String anyDayStr = rbl.getString("TimeDatePanel_Button_AnyDay"); //contains Any Day
    String dateDlgNameStr = rbl.getString("TimeDatePanel_DateDialog_Name"); //contains Select Date
    
    /** Creates a new instance of TimeDatePanel */
    public TimeDatePanel(JFrame owner) 
    {
        this.owner = owner;
        
        this.setLayout(new BorderLayout());
        this.add(getContentPanel(), BorderLayout.CENTER);
        setDateTime("0000-00-00T00:00:00");
    }
    
    public JPanel getContentPanel()
    {
        JPanel timeDatePanel = new JPanel(new GridBagLayout());
        
        //---------------------------------------------------
        //-- Top Date Panel ---------------------------------
        //---------------------------------------------------
        JPanel datePanel = new JPanel(new FlowLayout());
        
        captionDate = new JLabel(dateStr); 
        datePanel.add(captionDate);
        
        dateEditor = new JTextField(10);
        dateEditor.setText("0000-00-00");
        datePanel.add(dateEditor);
        
        dateChooser = new JButton(chooseStr);
        dateChooser.addActionListener(this);
        dateChooser.setActionCommand("DateDialog");
        datePanel.add(dateChooser);
        
        anyDay = new JButton(anyDayStr);
        anyDay.addActionListener(this);
        anyDay.setActionCommand("AnyDay");
        datePanel.add(anyDay);
        
        //---------------------------------------------------
        //-- Bottom Time Panel ------------------------------
        //---------------------------------------------------
        timePanel = new TimePanel();
        timePanel.spinnerHours.addChangeListener(this);
        timePanel.spinnerMinutes.addChangeListener(this);
        timePanel.spinnerSeconds.addChangeListener(this);
        
        //---------------------------------------------------
        //-- Construct Final Panel --------------------------
        //---------------------------------------------------
        constraints = new GridBagConstraints();
        
        constraints.gridx = 0; constraints.gridy = 0;
        constraints.gridwidth = 1; constraints.gridheight = 1;
        constraints.weightx = 1; constraints.weighty = 1;
        constraints.anchor = GridBagConstraints.CENTER;
        constraints.fill = GridBagConstraints.HORIZONTAL;
        timeDatePanel.add(datePanel, constraints);
        
        constraints.gridx = 0; constraints.gridy = 1;
        constraints.gridwidth = 1; constraints.gridheight = 1;
        constraints.weightx = 1; constraints.weighty = 1;
        constraints.anchor = GridBagConstraints.CENTER;
        constraints.fill = GridBagConstraints.HORIZONTAL;
        timeDatePanel.add(timePanel, constraints);
        
        return timeDatePanel;
    }
    
    public void actionPerformed(ActionEvent e)
    {
        /** 
         * DateChooser instance to use to change the date. 
         */
        if (e.getActionCommand().intern().equals("DateDialog"))
        {
            DateChooser DATE_CHOOSER = new DateChooser(this.owner, new SimpleDateFormat("yyyy.MM.dd").format(new Date()));
            Date d = DATE_CHOOSER.select();
            if (d == null)
                dateEditor.setText(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));    
            else dateEditor.setText(new SimpleDateFormat("yyyy-MM-dd").format(d));
        }
        else if (e.getActionCommand().intern().equals("AnyDay"))
        {
            dateEditor.setText("****-**-**");
        }
        //dateTime = dateEditor.getText() + "T" + timePanel.spinnerHours.getValue().toString() + ":" + timePanel.spinnerMinutes.getValue().toString();
        setDateTime(dateEditor.getText() + "T" + timePanel.spinnerHours.getValue().toString() + ":" + timePanel.spinnerMinutes.getValue().toString() + ":" + timePanel.spinnerMinutes.getValue().toString());
    }
 
    public void stateChanged(ChangeEvent e)
    {
        //dateTime = dateEditor.getText() + "T" + timePanel.spinnerHours.getValue().toString() + ":" + timePanel.spinnerMinutes.getValue().toString();
        setDateTime(dateEditor.getText() + "T" + timePanel.spinnerHours.getValue().toString() + ":" + timePanel.spinnerMinutes.getValue().toString() + ":" + timePanel.spinnerSeconds.getValue().toString());
    }
    
    public String getDateTime()
    {
        return dateTime;
    }
    
    public void setDateTime(String s)
    {
        dateTime = s;
    }
}

⌨️ 快捷键说明

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