منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

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

اذهب الى الأسفل

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

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

بسم الله الرمن الرحيم
كيف يمكنني ان اجعل صندوق النص يكتب الارقام فقط و عند محاولة كتابة الاحرف لا يقوم بالكتابة
fayezmath
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) {
      }
    }
  }

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

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

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

ok شكر

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

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

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

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

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

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

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

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

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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