[Swing]القص , النسخ , اللقص فى حقل النص JTextField

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

[Swing]القص , النسخ , اللقص فى حقل النص JTextField  Empty [Swing]القص , النسخ , اللقص فى حقل النص JTextField

مُساهمة من طرف السنى في الأربعاء أكتوبر 02, 2019 6:23 pm

كود بسيط لانشاء قائمة منبثقة لعميات القص , النسخ , اللقص فى حقل النص [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]  بالخطوات البسيطة التالية :

1_نقوم بانشاء كلاس جديد وليكن باسم TextWithPopUp.java 


[Swing]القص , النسخ , اللقص فى حقل النص JTextField  Pop2

2_ قم بتميدي الكلاس السابق بـــ extend JTextField ليصبح بالشكل التالى :


[Swing]القص , النسخ , اللقص فى حقل النص JTextField  Pop3

3_ كتابة الشفرة لهذا الكلاس على النحو التالى :

الكود:


// إستيراد المك
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;


public class TextWithPopUp extends JTextField{


// إنشاء كائن القائمة المنبثقة  
JPopupMenu popup = new JPopupMenu();


// إنشاء حقل النص
JTextField text = this;

UndoManager manager = new UndoManager();

// إنشاء عناصر القائمة
JMenuItem menuCut = new JMenuItem("Cut");
JMenuItem menuCopy = new JMenuItem("Copy");
JMenuItem menuPaste = new JMenuItem("Paste");
JMenuItem menuUndo = new JMenuItem("Undo");
JMenuItem menuRedo = new JMenuItem("Redo");
 
public TextWithPopUp() {
super();
initAksi();
initPopup();
}


// طريقة لوضع عناصر القائمة الى كائن القائمة
private void initPopup(){
this.setComponentPopupMenu(popup);
popup.add(menuCut);
popup.add(menuCopy);
popup.add(menuPaste);
JSeparator separator = new JSeparator();
popup.add(separator);
popup.add(menuUndo);
popup.add(menuRedo);
}


// طريقة لوضع ايقونة لعناصر القائمة
private void initAksi(){
menuCut.setIcon(new ImageIcon(getClass().getResource("/blog/ganjar/popupmenu/icon/cut-icon.png")));
menuCut.addActionListener(new ActionListener() {
 
@Override
public void actionPerformed(ActionEvent e) {
text.cut();
}
});
 
menuCopy.setIcon(new ImageIcon(getClass().getResource("/blog/ganjar/popupmenu/icon/Copy-icon.png")));
menuCopy.addActionListener(new ActionListener() {
 
@Override
public void actionPerformed(ActionEvent e) {
text.copy();
}
});
 
menuPaste.setIcon(new ImageIcon(getClass().getResource("/blog/ganjar/popupmenu/icon/Paste-icon.png")));
menuPaste.addActionListener(new ActionListener() {
 
@Override
public void actionPerformed(ActionEvent e) {
text.paste();
}
});
 
text.getDocument().addUndoableEditListener(new UndoableEditListener() {
@Override
public void undoableEditHappened(UndoableEditEvent e) {
manager.addEdit(e.getEdit());
}
});
 
menuUndo.setIcon(new ImageIcon(getClass().getResource("/blog/ganjar/popupmenu/icon/Undo-icon.png")));
menuUndo.addActionListener(new ActionListener() {
 
@Override
public void actionPerformed(ActionEvent e) {
try {
manager.undo();
} catch (CannotUndoException cannotUndoException) {
System.err.println(cannotUndoException);
}
}
});
 
menuRedo.setIcon(new ImageIcon(getClass().getResource("/blog/ganjar/popupmenu/icon/Redo-icon.png")));
menuRedo.addActionListener(new ActionListener() {
 
@Override
public void actionPerformed(ActionEvent e) {
try {
manager.redo();
} catch (CannotRedoException cannotRedoException) {
System.err.println(cannotRedoException);
}
}
});
}
}


4_ قم بحقظ الكلاس السابق

5_ قم بإنشاء نافذة JFrame  

[Swing]القص , النسخ , اللقص فى حقل النص JTextField  Pop4



6_أخيرا اسحب الفئة TextWithPopUp.java إلى Jframe حتى تظهر صورة  JTextField العادي على النافذة


[Swing]القص , النسخ , اللقص فى حقل النص JTextField  Pop5



7_ قم بتشغيل النافذة ليظهر حقل النص كما فى الصورة التالية مع كافة أوامر النسخ و القص و اللصق 

[Swing]القص , النسخ , اللقص فى حقل النص JTextField  Pop6
السنى
السنى
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 223
النقاط : 420
التقيم : 23
الجنس : ذكر

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

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

ََ

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


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