بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
اللهم يا معلم آدم علمنا ويا مفهم سليمان فهمنا ، سبحانك لا علم لنا إلا ما علمتنا إنك أنت علام الغيوب .
الصنف التالي مشتق من مربع النص jtextfield مع إضافة أمران بسيطان إلى الدالة keytyped() ، يقوم هذان الأمران بإعادة رسم العناصر المرئية كلما أدخل المستخدم حرفاأو مسحه .
الصنف التالي يعمل إذا أضيف مربع النص داخل لوحة jpanel وليس أي حاوية أخرى .
وجزى الله خيرا من يطوره ليعمل داخل أي حاوية .
package textfieldautoresize;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TextFieldAutoResize extends JTextField {
public TextFieldAutoResize() {
this.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent evt) {
KeyTyped(evt);
}
});
}
private void KeyTyped(KeyEvent evt) {
//إذا افترضنا أن مربع النص مضاف داخل لوحة فإن الدالة
//getparent()
//تعود بحاوية نحولها إلى لوحة لأننا نعرف مسبقا أنها لوحة
JPanel p = (JPanel) this.getParent();
//ثم نستدعي الدالة
//updateui()
//التي تقوم باعادة رسم العناصر المرئية
p.updateUI();
//لاحظ أن الأمران السابقان مكتوبان داخل الدالة
//keytyped
//أي سوف يتم استدعائهما كلما أدخل المستخدم حرفا أو مسحه
}
}
المشروع في المرفقات .
والحمد لله رب العالمين .


