上学期期末作业 自己写的一个类
public class JSpinnerJPanel extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
int yearvalue = 1995,monthvalue = 1,dayvalue = 1;
int daymax = 31;
SpinnerNumberModel model1 = new SpinnerNumberModel(yearvalue, 1960, 2015, 1);
JSpinner spinner1 = new JSpinner(model1);
SpinnerNumberModel model2 = new SpinnerNumberModel(monthvalue, 1, 12, 1);
JSpinner spinner2 = new JSpinner(model2);
SpinnerNumberModel model3 = new SpinnerNumberModel(dayvalue, 1, daymax, 1);
JSpinner spinner3 = new JSpinner(model3);
String yearstr = "1995年";
String monthstr = "1月";
String daystr = "1日";
public JSpinnerJPanel(){
add(spinner1);
add(spinner2);
add(spinner3);
model1.addChangeListener(listener1);
model2.addChangeListener(listener2);
model3.addChangeListener(listener3);
}
ChangeListener listener1 = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
SpinnerModel source = (SpinnerModel)e.getSource();
yearstr=""+source.getValue()+"年";
}
};
ChangeListener listener2 = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
SpinnerModel source = (SpinnerModel)e.getSource();
monthstr=""+source.getValue()+"月";
}
};
ChangeListener listener3 = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
SpinnerModel source = (SpinnerModel)e.getSource();
daystr=""+source.getValue()+"日";
}
};
public void setSpinner(){
spinner1.setValue(1995);
spinner2.setValue(1);
spinner3.setValue(1);
}
public String getyearstr(){ return this.yearstr;}
public String getmonthstr(){ return this.monthstr;}
public String getdaystr(){ return this.daystr;}
public void setyearvalue(int yearvalue){ this.yearvalue = yearvalue;}
public void setmonthvalue(int monthvalue){ this.monthvalue = monthvalue;}
public void setdayvalue(int dayvalue){ this.dayvalue = dayvalue;}
public void setdaymax(int daymax){ this.daymax = daymax;}
}
因为老师要求使用对象字节流进行文件读写 所以微调文本行里的出生日期改变了以后 就向文件里写入对象的生日 例如上图 当单击录入或修改后 写入一个字符串"1995年1月1日"
所以 还在主界面类里写了一个方法 主要是利用 java的异常获取处理的嵌套实现转换分辨字符串的含义
public int[] birthFormatDispose(String birth){
int a[] = {-1,-1,-1};
a[0]=Integer.parseInt(birth.substring(0,4));
try{
a[1]=Integer.parseInt(birth.substring(5,7));
}
catch(NumberFormatException ex){
a[1]=Integer.parseInt(birth.substring(5,6));
try{
a[2]=Integer.parseInt(birth.substring(7,9));
}
catch(NumberFormatException ex1){
a[2]=Integer.parseInt(birth.substring(7,8));
}
}
if(a[2]==-1){
try{
a[2]=Integer.parseInt(birth.substring(8,10));
}
catch(NumberFormatException ex){
a[2]=Integer.parseInt(birth.substring(8,9));
}
}
return a;
}
返回的这个数组用来设置微调文本行 以便在查询时显示出生日期
int[]d=new int[3];
d=birthFormatDispose(pl.getBorth());
birth.spinner1.setValue(d[0]);
birth.spinner2.setValue(d[1]);
birth.spinner3.setValue(d[2]);