الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كتابة نص في JTextField

مغلق
بدأه زائر في 8 فبراير 2005 · 12 رد · 1,016 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف أقدر اكتب نص جديد فوق نص قديم موجود في الـ textField ?

هل توجد طريقه للشئ هذا ، ارجو ان تدلوني عليه ،

#2

بامكانك عن طريق وضع

 TextField.setString("");

ثم تقوم بكتابة ماتريد ضع الكود بكون الاجابة افضل واسهل

لست متواجد بشكل يومي

#3

ألف شكر أخي مجدي محمود ،

على تعاونكم واستجابتك

لكن أنا لاأريد مسحها ثم الكتابه بالtext Field

اريد ان اكتب فوق النص بدون أن امسح ،

اي اذا كتبت النص الجديد أكثر من النص القديم راح يختفي النص القديم

مثلاً

عندي textField فيه نص ABCD

كتبت TR بالـtextField

راح يظهر بالـtextField النص TRCD

أتمنى تدلوني على داله أذا كان فيه داله تعمل هالعمل ،

#4

ما اتوقع راح تلقى ميثود جاهزه و لكن تقدر تاخذ الكلام الموجود بالتكست فيلد على شكل String و بعدين تلعب بالـ String من خلال الميثودز الخاصه بالـ String و بعدين تكتب الـ String الجديد بالـ JTextField..

#5

إليك هذه الحزمة التي صممتها لك...

كل ما عليك هو أن تستورد الحزمة...

import hussam.text.*;

ومن ثم استعمال أي JTextComponent كما في التالي:

  javax.swing.text.JTextComponent tx=new JTextField();
  tx.setDocument(new OverWritableDocument(tx));

الحزمة مرفقة..

أخبرني إن نجحت معك!!

OverWritableTextProject.jar

#6

ألم يجرب أحد هذه الحزمة؟ أرجو ممن يستطيع أن يخبرني إن وُجدت أخطاء.

سأقوم بوضع الشفرة بعد أن أسمع رأي من جربوه!

#7

اخي ابو مازن مشكور لتعاونك

وحقيقة ماشتغلت معي الحزمه

ولكن راح ارجع للبيت واشوفها لك

:) تعرف طلاب الجامعه الوقت مو بيدهـُم

#8

معلومة: هذه الحزمة ليست برنامج، بل هي حزمة ليستخدمها المطورون. لن يحدث شيء إن قمت بالنقر على الحزمة مرتين لتشغيله، لأنه ليس ملف تشغيلي.

ضع الحزمة في

[JavaHome]\jre\lib\ext\

أو ضعها في امتداد الفئات التي تستخدمها أو تنشئها.

أو ضعها في امتداد المشروع الذي تقوم عليه.

ومن ثم استدع الحزمة في برنامجك كما أشرت سابقا......

........................ الآن عرفت................. تذكرت شيئا.............. هذه الحزمة لن تعمل إلا على Java 1.5 وهي الإصدار الأخير من Java. إن كنت تستعمل إصدارات سابقة فلن تعمل الحزمة!!!! آسف، كان يجب علي أن أنوه بذلك!!!

سأحاول إصدار حزمة تعمل على إصدارات سابقة.

#9

هذه الحزمة ستعمل بإذن الله بدأ من الإصدار 1.1 من جافا....

أعتقد أنه لن يواجه أحد مشاكل في استعمال هذه الحزمة...

الملف مرفق....

OverWritableTextProject.jar

#10

لم أعتقد أن تجربتها ستأخذ وقتا! لكني أصدرت الشفرة للفائدة، وتجدها في ملف مرفق بالأسفل.

package hussam.text;
import javax.swing.text.PlainDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;

public class OverWritableTextDocument extends PlainDocument{
	private javax.swing.text.JTextComponent text;
	public OverWritableTextDocument(javax.swing.text.JTextComponent text){
  this.text=text;
	}
	public void insertString(int offs, String str, AttributeSet a)throws BadLocationException {
  String word=text.getText().substring(0,offs);
  String left="";
  left=text.getText().substring(offs);
  String subtracted="";
  if(left.length()>0)subtracted=left.substring(str.length());
  word=word+str+subtracted;
  text.setText("");
  super.insertString(0,word,a);
  text.setCaretPosition(offs+str.length());
	}
}

OverWritableTextDocument.java

#11

يا شباب ما بكم ربما انا فهمان خطا و على الاغلب ما فهمت عليكم...

لانه الموضوع مو محتاج توابع و مدري شو و حزمات

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

javax.swing.JTextField tt=new JTextField(); 
tt.setText(tt.getText()+"the txt you want to add");

ممكن توضح سؤالك لانه ما بقى نعرف شنو تريد

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#12

المسألة ليست هكذا حسب علمي، لكنه يريد حاوي كلمات ليست به خاصية insert!!!

مثلا في الوورد لديك أسلوبان في الكتابة، الكتابة المعروفة وهي باستخدام insert... والكتابة الأخرى بدون insert.. اضغط على زر insert على لوحة المفاتيح.

#13

تصحيح. طريقة استخدام الشفرة عرضتها بصورة خاطئة في الردود السابقة.

هذه هي الطريقة.

javax.swing.text.JTextComponent tx=new JTextField();
 tx.setDocument(new OverWritableTextDocument(tx));

هذا الموضوع مغلق.

مواضيع مشابهة