2012-12-18 56 views
-1

我正在使用NetBeans在java中构建gui应用程序。它有一个jSpinner。我将其最小值设置为0.当我运行并单击向下箭头按钮时,我正在接受负面排斥。任何解决方案?防止jSpinner中的负值

//此代码是在NetBeans自动生成

protected void fireStateChanged() { 
    Object[] listeners = listenerList.getListenerList(); 
    for (int i = listeners.length - 2; i >= 0; i -= 2) { 
     if (listeners[i] == ChangeListener.class) { 
      if (changeEvent == null) { 
       changeEvent = new ChangeEvent(this); 
      } 
      ((ChangeListener)listeners[i+1]).stateChanged(changeEvent); 
     } 
    } 
} 
+2

向我们展示你的代码。确切地说......代码在监听器里面。 –

+0

和异常的完整堆栈跟踪。 –

回答

4

尝试这种方式而不是自动生成的NetBeans代码:

import javax.swing.JFrame; 
import javax.swing.JSpinner; 
import javax.swing.SpinnerModel; 
import javax.swing.SpinnerNumberModel; 
import javax.swing.SwingUtilities; 
import javax.swing.event.ChangeEvent; 
import javax.swing.event.ChangeListener; 

public class Spinner { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JFrame frame = new JFrame("Spinner demo"); 
       //10 is init value, 0 is minimum, 20 maximum and 1 is step 
       SpinnerModel model = new SpinnerNumberModel(10, 0, 20, 1); 
       JSpinner spinner = new JSpinner(model); 
       spinner.addChangeListener(new ChangeListener() { 
        public void stateChanged(ChangeEvent e) { 
         JSpinner s = (JSpinner)e.getSource(); 
         int val = (int)s.getValue(); 
         System.out.println(val); 
        } 
       }); 

       frame.add(spinner); 
       frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
       frame.pack(); 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 

它返回正确的价值观。没有消极的。祝你好运!

+0

+1谢谢,我会尝试。 – AGEM

+0

首先尝试,而不是接受答案...不需要急!顺带一提,欢迎您。 –

1

这是一个有点晚了,但这里是Netbeans中的一个解决方案,支持自动生成的代码:JSpinner的 - >属性 - >第二行“模式”,单击[..]和u有不同的选择:)