编写日历程序。要求有一个窗口,为BorderLayout 布局。窗口的中心添加一个JPanel 容器
pCenter,pCenter 为7行7列的GridLayout 布局,pCenter 中放置49个标签,用来显示日
历。窗口的北面添加一个JPanel 容器pNorth,采用FlowLayout 布局,放置两个按钮nextMonth
和previousMonth。单击nextMonth 按钮,可以显示下一个月的日历;单击previousMonth
按钮可以显示上一个月的日历。窗口的南面添加一个JPanel 容器pSouth,采用FlowLayout
布局,pSouth 中放置一个标签用来显示一些信息。
package lei;
import java.io.*;
public class dahfcbdcj {
public static void main(String[] args) {
File file=new File("C:\\Users\\liuha\\Desktop\\课程\\java\\javashiyan\\App5\\score.txt");
File file1=new File("C:\\Users\\liuha\\Desktop\\课程\\java\\javashiyan\\App5\\scoreAnalysis.txt");
Students s=new Students();
s.read(file,file1);
}
}
class Students{
String str=null;
BufferedReader r;
BufferedWriter w;
public void read(File file,File file1){
try{
r=new BufferedReader(new FileReader(file));
w=new BufferedWriter(new FileWriter(file1));
while((str=r.readLine())!=null){
double j=0,k=0;
char[] a=str.toCharArray();
//判断每行里面是否有数字,初始化两个变量,分别储存当前行里面每个数值分数和所有数值分数的总和
for(int i=0;i<str.length();i++){
//检查是否为数字,查三个数字
if(a[i]>='0'&&a[i]<='9'){
//这里的0——9表示的是ASSIC码表中的,0的ASSIC码值为48
//获得具体数值并赋值给j
j=(double)(a[i]-48);
//增加i跳过当前数字,并检查下面的字符
i++;
if(a[i]>='0'&&a[i]<='9'){
j=j*10+(double)(a[i]-48);
i++;
}
if(a[i]>='0'&&a[i]<='9'){
j=j*10+(double)(a[i]-48);
}
//k包含当前行里面所有数值分数的总和
k+=j;
}else{
j=0;
}
}
String s1=str+"-------------总分"+k+"分";
System.out.println(s1);
w.write(s1);
w.newLine();
}
w.close();
r.close();
}catch(IOException e){
}
}
}