All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.panayotis.xray.props.commons.AwareSpinner Maven / Gradle / Ivy

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.panayotis.xray.props.commons;

import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeListener;

/**
 *
 * @author teras
 */
public class AwareSpinner extends JPanel {

    private final JSpinner spinner;
    private final SpinnerNumberModel model;

    @SuppressWarnings("OverridableMethodCallInConstructor")
    public AwareSpinner(int min, int max) {
        super(new BorderLayout());
        spinner = new JSpinner(model = new SpinnerNumberModel(0, min, max, 1));
        spinner.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                setOpaque(e.getKeyCode() != KeyEvent.VK_ENTER);
            }
        });
        add(spinner, BorderLayout.CENTER);
        setOpaque(false);
        setBackground(AwareDefaults.DIRTY);
    }

    public int getValue() {
        return model.getNumber().intValue();
    }

    public void setValue(Number n) {
        model.setValue(n);
    }

    @Override
    public void setEnabled(boolean enabled) {
        spinner.setEnabled(enabled);
        super.setEnabled(enabled);
    }

    public void addChangeListener(ChangeListener listener) {
        spinner.addChangeListener(listener);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy