Java by API/javax.swing/SpinnerNumberModel

Материал из Java эксперт
Перейти к: навигация, поиск

extends SpinnerNumberModel

   <source lang="java">

   

/*

*
* Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
*
* Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
* modify and redistribute this software in source and binary code form,
* provided that i) this copyright notice and license appear on all copies of
* the software; and ii) Licensee does not utilize the software in a manner
* which is disparaging to Sun.
*
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
* IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
* LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
* OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
* LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
* INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
* CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
* OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* This software is not designed or intended for use in on-line control of
* aircraft, air traffic, aircraft navigation or aircraft communications; or in
* the design, construction, operation or maintenance of any nuclear
* facility. Licensee represents and warrants that it will not use or
* redistribute the Software for such purposes.
*/    
   

import java.awt.Color; import java.awt.Dimension; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; class GrayModel extends SpinnerNumberModel {

 public GrayModel(int value) {
   super(value, 0, 255, 5);
 }
 public int getIntValue() {
   Integer myValue = (Integer) getValue();
   return myValue.intValue();
 }
 public Color getColor() {
   int intValue = getIntValue();
   return new Color(intValue, intValue, intValue);
 }

} class GrayEditor extends JLabel implements ChangeListener {

 public GrayEditor(JSpinner spinner) {
   setOpaque(true);
   // Get info from the model.
   GrayModel myModel = (GrayModel) (spinner.getModel());
   setBackground(myModel.getColor());
   spinner.addChangeListener(this);
   // Set tool tip text.
   updateToolTipText(spinner);
   // Set size info.
   Dimension size = new Dimension(60, 15);
   setMinimumSize(size);
   setPreferredSize(size);
 }
 protected void updateToolTipText(JSpinner spinner) {
   String toolTipText = spinner.getToolTipText();
   if (toolTipText != null) {
     // JSpinner has tool tip text. Use it.
     if (!toolTipText.equals(getToolTipText())) {
       setToolTipText(toolTipText);
     }
   } else {
     // Define our own tool tip text.
     GrayModel myModel = (GrayModel) (spinner.getModel());
     int rgb = myModel.getIntValue();
     setToolTipText("(" + rgb + "," + rgb + "," + rgb + ")");
   }
 }
 public void stateChanged(ChangeEvent e) {
   JSpinner mySpinner = (JSpinner) (e.getSource());
   GrayModel myModel = (GrayModel) (mySpinner.getModel());
   setBackground(myModel.getColor());
   updateToolTipText(mySpinner);
 }

} public class Main extends JPanel {

 public static void main(String[] args) {
   JFrame frame = new JFrame("SpinnerDemo4");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JComponent newContentPane = new Main();
   newContentPane.setOpaque(true);
   frame.setContentPane(newContentPane);
   frame.add(new JLabel("Shade of Gray:"), "North");
   frame.add(new JSpinner(new GrayModel(170)));
   frame.pack();
   frame.setVisible(true);
 }

}

 </source>
   
  
 
  



new SpinnerNumberModel()

   <source lang="java">

import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerModel; import javax.swing.SpinnerNumberModel; public class MainClass {

 public static void main(final String args[]) {
   JFrame frame = new JFrame("JSpinner Dates");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   SpinnerModel model3 = new SpinnerNumberModel();
   JSpinner spinner3 = new JSpinner(model3);
   JLabel label3 = new JLabel("Numbers");
   JPanel panel3 = new JPanel(new BorderLayout());
   panel3.add(label3, BorderLayout.WEST);
   panel3.add(spinner3, BorderLayout.CENTER);
   frame.add(panel3, BorderLayout.SOUTH);
   frame.setSize(200, 90);
   frame.setVisible(true);
 }

}


 </source>