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

📄 queryofyear.java

📁 约会管理系统
💻 JAVA
字号:
package P3;
import java.util.*; 
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;

import java.awt.*;
import java.awt.event.*;

public class QueryOfYear extends JFrame{
	protected Calendar calendar=Calendar.getInstance();
	private JSpinner yearsSpinner=new JSpinner();
	protected Activities activitiesOfYear;
	protected Activities totalActivities;
	protected HashMap<String,Activity> record=new HashMap<String,Activity>();
	private JButton db=new JButton("Display");
	private JTextArea text=new JTextArea(5,25);
	private JPanel textPanel=new JPanel();
	protected JPanel buttonPanel=new JPanel();
	protected JPanel controlPanel=new JPanel();
	protected JPanel timePanel=new JPanel();
	protected JPanel containerPanel=new JPanel();
    private JLabel yearsLabel=new JLabel("Year: "); 
	protected DefaultListModel lItems=new DefaultListModel();
	protected JList lst=new JList(lItems);
	private JPanel lstPanel=new JPanel();
	
	private void initDetail(){
		db.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				String secelected=(String)lst.getSelectedValue();
				if(secelected==null)return;
				Activity activity=record.get(secelected);
				text.setText("Time:"+activity.getYear()+"-"+activity.getMonth()+"-"+activity.getDate()+"\n" +
						"Title:"+activity.getTitle()+"\n"+"Location:"+activity.getLocation()+"\n"+"Description:"+activity.getDescription());
			}
		});
		buttonPanel.setLayout(new FlowLayout());
		buttonPanel.add(db);
		text.setEditable(false);
		textPanel.setBorder(new TitledBorder("Detail:"));
		textPanel.add(new JScrollPane(text));
		text.setBorder(new MatteBorder(2,2,0,0,Color.GRAY));
		controlPanel.setLayout(new BorderLayout());
		controlPanel.add(buttonPanel,BorderLayout.NORTH);
		controlPanel.add(textPanel,BorderLayout.CENTER);
		add(controlPanel,BorderLayout.CENTER);
	}
	public void activitiesList(){
		if(activitiesOfYear==null)return;
		for(Map.Entry<Integer,Object> activities:activitiesOfYear.entrySet()){
			for(Map.Entry<Integer,Object> entry:((TreeMap<Integer,Object>) activities.getValue()).entrySet()){
				Activity activity=(Activity) entry.getValue();
				StringBuilder sb=new StringBuilder();
				sb.append(activity.getYear());
				sb.append("-");
				sb.append(activity.getMonth());
				sb.append("-");
				sb.append(activity.getDate());
				sb.append("  ");
				sb.append(activity.getHour());
				sb.append(" : ");
				sb.append(activity.getMinute());
				sb.append("    ");
				sb.append(activity.getTitle());
				String s=sb.toString();
				record.put(s,activity);
				lItems.addElement(s);
			}
		}
	}
	
	public QueryOfYear(Activities totalActivities){
		this.totalActivities=totalActivities;
		setLayout(new BorderLayout());
		activitiesOfYear=(Activities) totalActivities.get(calendar.get(Calendar.YEAR));
		init();
	}
	public void init(){
		Border brd=BorderFactory.createMatteBorder(1,1,2,3,Color.DARK_GRAY);
		lst.setBorder(brd);
		yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));
	    yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR)));
        yearsSpinner.addChangeListener(new ChangeListener() { 
                public void stateChanged(ChangeEvent changeEvent) { 
                	int day = calendar.get(Calendar.DAY_OF_MONTH);
                    calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue()).intValue());
                    calendar.set(Calendar.DAY_OF_MONTH,1);
                    int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
                    calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);
                    activitiesOfYear=(Activities) totalActivities.get(calendar.get(Calendar.YEAR));
                    lItems.removeAllElements();
                    activitiesList();
                } 
            });
        JPanel yearsPanel=new JPanel();
        yearsPanel.add(yearsLabel);
        yearsPanel.add(yearsSpinner);
        timePanel.setLayout(new FlowLayout());
        timePanel.add(yearsPanel);
        timePanel.setBorder(new MatteBorder(3,3,1,1,Color.lightGray));
        activitiesList();
        containerPanel.setBorder(new TitledBorder("Schedule"));
        lstPanel.add(new JScrollPane(lst));
        lstPanel.setBorder(new MatteBorder(3,3,0,0,Color.lightGray));
        containerPanel.setLayout(new BorderLayout(10,10));
        containerPanel.add(timePanel,BorderLayout.NORTH);
        containerPanel.add(lstPanel,BorderLayout.CENTER);
        add(containerPanel,BorderLayout.NORTH);
        initDetail();
	}
	public static void run(final JFrame f){
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				f.setTitle("yearly format");
				f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
				f.setSize(400, 480);
				f.setResizable(false);
				f.setVisible(true);
			}
		});
	}
	public static void main(String[] args){
		DateOrganizerSystem dateOrganizerSystem=new DateOrganizerSystem();
		ExecutorService exec=Executors.newCachedThreadPool();
		exec.execute(dateOrganizerSystem);
		DateOrganizerSystem.run(dateOrganizerSystem);
		exec.shutdown();
	}
}

⌨️ 快捷键说明

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