📄 queryofyear.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 + -