JAVA作业,我比作业要求的多加了些功能,可以滚轮和键盘左右键翻页快捷键做的也许比较傻吧,监听到就直接doClick();沉迷JAVA,对于我这种以前只写过控制台程序的来说,图形界面真是打开了新世界
//MySwingCalendar.java
package test2;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.KeyEventPostProcessor;
import java.awt.KeyboardFocusManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Calendar;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
import javax.swing.border.CompoundBorder;
public class MySwingCalendar extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private Calendar calendar;
private final static String week[]={"日","一","二","三","四","五","六"};
private JLabel dayLable[][]=new JLabel[6][7],monthLable;
private void initCalendar() {
calendar=Calendar.getInstance();
calendar.set(Calendar.DATE,0);
}
private void initFrame() {
setIconImage(new ImageIcon("icon\\Calendar.gif").getImage());
setSize(500, 300);
getContentPane().setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent e) {
requestFocus();
}
});
}
public MySwingCalendar() {
super("Calendar");
initCalendar();
initFrame();
JPanel northPanel=new JPanel(new FlowLayout(FlowLayout.CENTER));
JButton preMonth=new JButton("上月");
preMonth.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calendarAdd(-1);
}
});
northPanel.add(preMonth);
JButton nextMonth=new JButton("下月");
nextMonth.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calendarAdd(1);
}
});
northPanel.add(nextMonth);
getContentPane().add(northPanel,BorderLayout.NORTH);
JPanel centerPanel=new JPanel(new GridLayout(7, 7,1,1));
centerPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
for(String s:week)
{
JButton weekButton=new JButton(s);
weekButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
requestFocus();
}
});
centerPanel.add(weekButton);
}
for(int i=0;i100)
{
lastRightPress = currentTime;
nextMonth.requestFocus();
nextMonth.doClick();
}
}
return false;
}
});
addMouseWheelListener(new MouseWheelListener() {
private long lastMove=0;
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
int wheelRotation=e.getWheelRotation();
long currentTime=System.currentTimeMillis();
if(wheelRotation==-1&¤tTime-lastMove>70)
{
lastMove=currentTime;
preMonth.requestFocus();
preMonth.doClick();
}
else if(wheelRotation==1&¤tTime-lastMove>70)
{
lastMove=currentTime;
nextMonth.requestFocus();
nextMonth.doClick();
}
}
});
setVisible(true);
}
public String toString(){
String s=calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月\n";
for(String i:week)
s+=" "+i;
s+="\n";
int day=calendar.get(Calendar.DAY_OF_WEEK)%7;
for(int i=0;i |