簡體   English   中英

將Textfield輸入轉換為int然后限制值

[英]Taking a Textfield input converting to an int and then limiting the value

因此,我試圖將Textfield輸入解析為一個int,然后按Enter。 如果該值介於1到50之間,則返回錯誤;否則返回我的程序的其余部分。 我目前正在測試,看看我是否可以使Action事件正常工作。

這就是我目前所擁有的。

我得到錯誤的操作數<=和>。 我不是在尋找任何人來解決這個問題,但是如果有人對我做錯的事情有任何鏈接或建議,將不勝感激。

公共無效init(){

setLayout( new FlowLayout());
label1= new JLabel( "Please enter number of rows" );
tf1= new JTextField(5);
String text = tf1.getText();
int first=Integer.parseInt(text);

add (label1);
add (tf1);

  tf1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        //System.out.println("Enter pressed");

        if (e.getSource()<=20){
            System.out.println("Correct");
        }
        else if (e.getSource()>20){
            System.out.println("Try again");
        }
    }
}); 
    }

您希望e.getSource()是輸入的數字,但是您得到的是導致事件發生的TextField 您不能使用<或類似方式將TextField與數字進行比較。

由於您直接在TextField上注冊了ActionListener ,因此不必檢查事件的來源。 您知道它將是TextField

您想做的是:

對於事件(僅當在TextField中發生操作時才調用actionPerformed() ),如果按下的鍵是Enter ,則從TextField獲取數字並檢查其值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM