2012-12-18 57 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有不同的選擇:)