ارقام في صندوق النص فقط

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

ok ارقام في صندوق النص فقط

مُساهمة من طرف fayezmath في الأحد مايو 01, 2016 1:39 pm

بسم الله الرمن الرحيم
كيف يمكنني ان اجعل صندوق النص يكتب الارقام فقط و عند محاولة كتابة الاحرف لا يقوم بالكتابة
avatar
fayezmath
..
..

تاريخ التسجيل : 26/04/2016
المساهمات : 12
النقاط : 28
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: ارقام في صندوق النص فقط

مُساهمة من طرف زهراء في الإثنين مايو 02, 2016 6:28 pm

اهلا بك

هذا المثال ما تصبو الية :

الكود:
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

public class ValidationTestFrame extends JFrame implements DocumentListener {
  JLabel label = new JLabel("I only accept numbers");
  private IntTextField intFiled;

  public ValidationTestFrame() {
    setTitle("ValidationTest");
    setSize(300, 200);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });

    Container contentPane = getContentPane();

    JPanel p = new JPanel();
    intFiled = new IntTextField(12, 3);
    p.add(intFiled);
    intFiled.getDocument().addDocumentListener(this);

    contentPane.add(p, "South");
    contentPane.add(label, "Center");
  }

  public void insertUpdate(DocumentEvent e) {
    setLabel();
  }

  public void removeUpdate(DocumentEvent e) {
    setLabel();
  }

  public void changedUpdate(DocumentEvent e) {
  }

  public void setLabel() {
    if (intFiled.isValid() ) {
      int value = intFiled.getValue();
      label.setText(Integer.toString(value));
    }
  }

  public static void main(String[] args) {
    JFrame frame = new ValidationTestFrame();
    frame.show();
  }

}

class IntTextField extends JTextField {
  public IntTextField(int defval, int size) {
    super("" + defval, size);
  }

  protected Document createDefaultModel() {
    return new IntTextDocument();
  }

  public boolean isValid() {
    try {
      Integer.parseInt(getText());
      return true;
    } catch (NumberFormatException e) {
      return false;
    }
  }

  public int getValue() {
    try {
      return Integer.parseInt(getText());
    } catch (NumberFormatException e) {
      return 0;
    }
  }
  class IntTextDocument extends PlainDocument {
    public void insertString(int offs, String str, AttributeSet a)
        throws BadLocationException {
      if (str == null)
        return;
      String oldString = getText(0, getLength());
      String newString = oldString.substring(0, offs) + str
          + oldString.substring(offs);
      try {
        Integer.parseInt(newString + "0");
        super.insertString(offs, str, a);
      } catch (NumberFormatException e) {
      }
    }
  }

}
avatar
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok شكر

مُساهمة من طرف fayezmath في الأربعاء يونيو 01, 2016 9:40 am

السلام عليكم شكرا على هذه المساعدة ولكن كيف يمكنني ان اجعل مربع النص يكتب ارقام فقط وذلك في منصة netbeans
هل يوجد في الجافا جدول الاسكي
avatar
fayezmath
..
..

تاريخ التسجيل : 26/04/2016
المساهمات : 12
النقاط : 28
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: ارقام في صندوق النص فقط

مُساهمة من طرف GANT في الجمعة يوليو 01, 2016 3:42 pm

ماذا عن JFormattedTextField ؟؟؟
avatar
GANT
.
.

تاريخ التسجيل : 29/03/2016
المساهمات : 6
النقاط : 8
التقيم : 0
الدولة : السعودية
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى