2015-12-02 96 views
0

我在JFrame中有一個應用程序。下面是部分代碼:主要監聽器java - 數量限制

button.addActionListener(new ActionListener() 
    { 
      public void actionPerformed(ActionEvent e) 
      { 
       String input = text.getText(); 
       int number = Integer.parseInt(text.getText()); 
       if(number>0) 
       { 
        for(int i=0; i<liczba; i++) 
        { 
         new NewWindow(); 
        } 
       } 
      } 
    }); 

這個動作在創建新的應用程序窗口,其中取決於我們輸入數量的窗口數量。我需要確保它是一個數字(不是字母或其他)。我也知道必須使用關鍵聽衆,並且輸入的符號必須在代表數字的ASCII值之間。但我不知道如何做到這一點。任何解決方案

+0

Surround'int number = Integer.parseInt(input);'帶'try {...} catch(Exception e){}'如果它到達'catch'部分,這意味着它不是一個數字 – 3kings

回答

3

我也知道密鑰聽者必須使用

沒有一個KeyListener的不需要被使用。這可能是最古老的解決方案,並在AWT中使用。 Swing具有更新,更好的API,您應該使用它。

您可以使用JSpinner,JFormattedTextFieldDocumentFilter

閱讀Swing Tutorial。你應該檢查出部分上:

  1. How to Use a Spinner
  2. How to use Formatted Text Fields
  3. How to Write a DocumentFilter

上述任何一個比使用KeyListener的一個更好的解決方案。