field.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { LOG.info("" + evt); if ("editValid".equals(evt.getPropertyName()) && Boolean.FALSE.equals(evt.getNewValue())) { SpinnerNumberModel model = (SpinnerNumberModel) spin2.getModel(); JOptionPane.showMessageDialog(null, "Error: Number must be in range [" + model.getMinimum() + " ..." + model.getMaximum() + "]", "Error Massage", JOptionPane.ERROR_MESSAGE); } } });
public void check() { AssertAdapter.assertEquals(new Integer(expectedMin), model.getMinimum()); } };
@Override public void setValue(Object value) { if (value instanceof Number) { final SpinnerNumberModel model = (SpinnerNumberModel) this.getModel(); double number = Double.parseDouble(value.toString()); if (!(model.getMaximum().compareTo(number) >= 0 && model.getMinimum().compareTo(number) <= 0)) throw new IllegalArgumentException(); } super.setValue(value); }
/** * {@link SpinnerNumberModel#getMaximum()} returns a {@link Comparable Comparable<T>} that can * not be cast to the type that was set earlier. */ public void spinnerModel(SpinnerNumberModel spinnerModel) { // this could have happened somewhere else: // spinnerModel.setMinimum(0); // spinnerModel.setMaximum(360); // spinnerModel.setValue(45); int newValue = (int) spinnerModel.getValue() + 1; newValue = Math.min(newValue, (int) spinnerModel.getMaximum()); // fail newValue = Math.max(newValue, (int) (Object) spinnerModel.getMinimum()); // pass spinnerModel.setValue(newValue); }
/** * Actions for mouse wheel movement * * @param evt */ private void counterSpinnerMouseWheelMoved(java.awt.event.MouseWheelEvent evt) { JSpinner source = (JSpinner) evt.getSource(); SpinnerNumberModel model = (SpinnerNumberModel) source.getModel(); Integer oldValue = (Integer) source.getValue(); int intValue = oldValue.intValue() - (evt.getWheelRotation() * model.getStepSize().intValue()); Integer newValue = new Integer(intValue); if ((model.getMaximum().compareTo(newValue) >= 0) && (model.getMinimum().compareTo(newValue) <= 0)) { source.setValue(newValue); } }
/** * Actions for selecting start line. * * @param evt */ private void startRowSpinnerMouseWheelMoved(java.awt.event.MouseWheelEvent evt) { JSpinner source = (JSpinner) evt.getSource(); SpinnerNumberModel model = (SpinnerNumberModel) source.getModel(); Integer oldValue = (Integer) source.getValue(); int intValue = oldValue.intValue() - (evt.getWheelRotation() * model.getStepSize().intValue()); Integer newValue = new Integer(intValue); if ((model.getMaximum().compareTo(newValue) >= 0) && (model.getMinimum().compareTo(newValue) <= 0)) { source.setValue(newValue); } }
@Override public void mouseWheelMoved(MouseWheelEvent e) { // The new value is the old one minus the wheel rotation // times the spin step. Double newValue = ((Double) getValue()) - e.getWheelRotation() * getSpinStep(); // Only update if we are within the given range. if (model.getMaximum().compareTo(newValue) >= 0 && model.getMinimum().compareTo(newValue) <= 0) { setValue(newValue); } } });
/** * @see Rule#validate(Object) */ @Override public Boolean validate(final Comparable<D> data) { Boolean result = true; final SpinnerModel model = spinner.getModel(); if (model instanceof SpinnerNumberModel) { final SpinnerNumberModel numberModel = (SpinnerNumberModel) model; // Check min bound if (numberModel.getMinimum() != null) { } // Check max bound if (result && (numberModel.getMaximum() != null)) { } } else { LOGGER.error("Spinner model is not an AbstractSpinnerModel: " + spinner); result = false; } return result; } }
@SuppressWarnings("unchecked") private void typeChanged(int periodType) { Number value = ((SpinnerNumberModel) jsValue.getModel()).getNumber(); SpinnerNumberModel model; switch (periodType) { case YEARS: model = new SpinnerNumberModel(1, 1, 999, 1); break; case MONTHS: model = new SpinnerNumberModel(1, 1, 12, 1); break; case WEEKS: model = new SpinnerNumberModel(1, 1, 52, 1); break; default: model = new SpinnerNumberModel(1, 1, 365, 1); break; } if (((Comparable<Object>) model.getMaximum()).compareTo(value) >= 0 && ((Comparable<Object>) model.getMinimum()).compareTo(value) <= 0) { model.setValue(value); } jsValue.setModel(model); }
BigDecimal stepSize = new BigDecimal(getStepSize().toString()); BigDecimal maximum = new BigDecimal(getMaximum().toString()); BigDecimal minimum = new BigDecimal(getMinimum().toString()); BigDecimal newValue; if (v instanceof Double) {
protected void configureSpinnerFloat(JSpinner spinner, int integerDigits, int fractionDigits) { double min = ((Number)((SpinnerNumberModel)spinner.getModel()).getMinimum()).doubleValue(); int adjust = min < 0 ? 1 : 0; JSpinner.NumberEditor editor = (JSpinner.NumberEditor)spinner.getEditor(); DecimalFormat format = editor.getFormat(); format.setMinimumFractionDigits(fractionDigits); format.setMinimumIntegerDigits(integerDigits); editor.getTextField().setHorizontalAlignment(SwingConstants.CENTER); Dimension d = spinner.getPreferredSize(); d.width = (adjust+integerDigits+1+fractionDigits)*11; spinner.setPreferredSize(d); spinner.setMaximumSize(d); }