package edu.byu.cs.roots.opg.gui.tools; import java.text.ParseException; import javax.swing.JSpinner; import javax.swing.SpinnerModel; public class IntEditor extends javax.swing.JSpinner.DefaultEditor { private static final long serialVersionUID = 7004140864166043839L; JSpinner spinner; IntSpinnerModel model = null; //JFormattedTextField textfield = null; public IntEditor(JSpinner spinner){ super(spinner); this.spinner = spinner; getTextField().setEditable(true); this.setEnabled(true); } public SpinnerModel getModel(){ if(model == null){ // System.out.println(getSpinner()); model = (IntSpinnerModel) getSpinner().getModel(); } return model; } @Override public void commitEdit() throws ParseException { try { Integer val = Integer.parseInt(getTextField().getText()); Integer curval = (Integer) getModel().getValue(); // System.out.println("Comparing" + val + " "+ curval); if(val.compareTo(curval) != 0) getModel().setValue(val); } catch (NumberFormatException e1) { this.getTextField().setText( ((Integer) model.getValue()).toString()); } } }