该程序日历输出没有对齐!我调了无数次,都调不好!importjava.util.Calendar;importjavax.swing.*;importjava.awt.Color;importjava.awt.event.*;importjava.lang.*;publicclassPreCale...
该程序日历输出没有对齐!我调了无数次,都调不好!
import java.util.Calendar;
import javax.swing.*;
import java.awt.Color;
import java.awt.event.*;
import java.lang.*;
public class PreCalendar1 extends JFrame implements ActionListener
{
JLabel LabelMonth,LabelYear;
JComboBox ComboBoxYear,ComboBoxMonth;
JTextArea display;
int year=2008 ,month=10;
int allday;
Calendar cal=Calendar.getInstance();
Integer []StringYear;
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
String StringCalendar;
public PreCalendar1()
{
this.setLayout(null);
LabelYear=new JLabel("年") ;
LabelYear.setBounds(40, 40, 40, 20);
this.getContentPane().add(LabelYear);
StringYear=new Integer [50];
for(int i=0;i<50;i++)
StringYear[i]=1970+i;
ComboBoxYear=new JComboBox(StringYear);
ComboBoxYear.setBounds(60,40,80,20);
this.getContentPane().add(ComboBoxYear);
LabelMonth=new JLabel("月");
LabelMonth.setBounds(170, 40, 40, 20);
this.getContentPane().add(LabelMonth);
Integer []StringMonth=new Integer[12];
for(int j=0;j<12;j++)
StringMonth[j]=1+j;
ComboBoxMonth=new JComboBox(StringMonth);
ComboBoxMonth.setBounds(190, 40, 80, 20);
ComboBoxMonth.addActionListener(this);
ComboBoxYear.addActionListener(this);
display=new JTextArea();
display.setBounds(50, 110,280, 250);
setDate(year,month);
print();
display.setText(StringCalendar);
this.getContentPane().add(display);
this.getContentPane().add(ComboBoxMonth);
this.setVisible(true);
this.setTitle("我的日历!");
this.setSize(380,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void print()
{
StringCalendar="------------"+cal.get(Calendar.YEAR)+"年"+(cal.get(Calendar.MONTH)+1)+"月份------------\n";
StringCalendar+="SUN MON TUR WED THU FRI SAT\n";
int first=cal.get(Calendar.DAY_OF_WEEK);
int i=0;
for(i=1;i
StringCalendar+=" ";
for(i=1;i<=allday;i++)
{
if(i<10)
StringCalendar+=" ";
StringCalendar+=" "+i;
StringCalendar+=" ";
if(first++%7==0)
StringCalendar+="\n ";
}
}
public void setDate(int m,int n)
{
cal.set(Calendar.YEAR, m);
cal.set(Calendar.MONTH,n-1);
cal.set(Calendar.DATE,1);
if((m%4==0 && m%100!=0 || m % 400==0)&& n==2 )
days[1]++;
allday=days[n-1];
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == ComboBoxYear)
{
year=Integer.parseInt(ComboBoxYear.getSelectedItem().toString() );
setDate(year,month);
print();
display.setText(StringCalendar);
}
if (e.getSource() == ComboBoxMonth)
{
month=Integer.parseInt(ComboBoxMonth.getSelectedItem().toString());
setDate(year,month);
print();
display.setText(StringCalendar);
}
}
public static void main(String[] args) {
PreCalendar1 cal=new PreCalendar1();
}
}
展开