亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將JTextField輸入限制為整數

將JTextField輸入限制為整數

ITMISS 2019-07-04 16:50:24
將JTextField輸入限制為整數我知道這個問題已經問過無數次了,但我還是找不到一個簡單的解決辦法。我有一個JTextField,它只接受正整數作為輸入。我需要一種方法來確保這里沒有其他的輸入。我已經有一個keyListener附加到這個控件。刪除此偵聽器要處理的其他代碼,我有以下內容:       txtAnswer.addKeyListener(new KeyAdapter() {         @Override         public void keyPressed(KeyEvent e) {             int key = e.getKeyCode();             /* Restrict input to only integers */             if (key < 96 && key > 105) e.setKeyChar('');         };     });如您所見,我正在嘗試使用鍵碼來檢查剛才按下的鍵是否在整數范圍內。這似乎很管用。但我想做的是,如果條目超出了這個范圍,就忽略它。密碼e.setKeyChar('')本來是用來處理這事的,但不起作用。代碼將編譯,但沒有可見的效果。有人能告訴我是否在正確的軌道上嗎?我能替換什么e.setKeyChar('')讓這件事成功嗎?還是我完全走錯了方向?謝謝。
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

您也可以使用JFormattedTextField,使用起來要簡單得多。例子:

public static void main(String[] args) {
    NumberFormat format = NumberFormat.getInstance();
    NumberFormatter formatter = new NumberFormatter(format);
    formatter.setValueClass(Integer.class);
    formatter.setMinimum(0);
    formatter.setMaximum(Integer.MAX_VALUE);
    formatter.setAllowsInvalid(false);
    // If you want the value to be committed on each keystroke instead of focus lost
    formatter.setCommitsOnValidEdit(true);
    JFormattedTextField field = new JFormattedTextField(formatter);

    JOptionPane.showMessageDialog(null, field);

    // getValue() always returns something valid
    System.out.println(field.getValue());}


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 1095 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號