import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calender3 extends JFrame {
private JButton search = new JButton("查询");
private JButton year = new JButton("年");
private JButton month = new JButton("月");
JLabel[] labelday = new JLabel[42];
private JTextField jbfyear = new JTextField();
private JTextField jbfmonth = new JTextField();
public Calender3() {
JPanel p2 = new JPanel(new GridLayout(0, 5));
p2.add(search);
p2.add(jbfyear);
p2.add(year);
p2.add(jbfmonth);
p2.add(month);
add(p2, BorderLayout.NORTH);
JPanel p1 = new JPanel(new GridLayout(0, 7));
p1.add(new JLabel("日"));
p1.add(new JLabel("一"));
p1.add(new JLabel("二"));
p1.add(new JLabel("三"));
p1.add(new JLabel("四"));
p1.add(new JLabel("五"));
p1.add(new JLabel("六"));
add(p1, BorderLayout.SOUTH);
search.addActionListener(new chazhaoListener());
GregorianCalendar g = new GregorianCalendar();
int y = g.get(Calendar.YEAR);
int m = g.get(Calendar.DAY_OF_MONTH);
p2.add(new JLabel(y + "年" + (m + 1) + "月", JLabel.CENTER),
BorderLayout.CENTER);
GregorianCalendar g1 = new GregorianCalendar(y, m, 1);
for (int j = 1; j < g1.get(Calendar.DAY_OF_WEEK); ++j) {
labelday[j - 1] = new JLabel("");
p1.add(labelday[j - 1]);
}
for (int j = 1; j <= 31; ++j) {
int d = g1.get(Calendar.DAY_OF_MONTH);
labelday[j - 1] = new JLabel(d + "");
p1.add(labelday[j - 1]);
g1.add(Calendar.DAY_OF_WEEK, 1);
}
}
class chazhaoListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == search) {
int y = Integer.parseInt(jbfyear.getText());
int m = Integer.parseInt(jbfmonth.getText());
GregorianCalendar g2 = new GregorianCalendar(y, m - 1, 1);
for (int j = 1; j < g2.get(Calendar.DAY_OF_WEEK); ++j) {
labelday[j - 1].setText(" ");
}
for (int j = 1; j <= 31; ++j) {
int d = g2.get(Calendar.DAY_OF_MONTH);
labelday[j - 1].setText(d + "");
g2.add(Calendar.DAY_OF_WEEK, 1);
}
}
}
}
public static void main(String[] args) {
Calender3 frame = new Calender3();
frame.setTitle("Calender");
frame.setSize(800, 400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
需要把chazhaoListener定义在Calender3里面,否则search为null