java图形界面异常处理的简单利用

上学期期末作业 自己写的一个类  

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]);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值