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

كيف أضيف Avtion undo/redo

بدأه تميز2009 في 6 مايو 2010 · 13 رد · 1,097 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف حالكم اخواني الكرام

أود سؤالكم كيف أضيف Action Undo/Redo

لقد حاولت لكن دون جدوا هده هي محاولتي في الملف المرفق

أرجو مساعدتكم

تحياااااااااااااااااااااااااااتي

JavaApplication8.rar

تم تعديل هذه المشاركة بواسطة تميز2009 في 6 مايو 2010 في 18:12

أضغط هنا ولن تندم

http://www.shbab1.com/2minutes.htm

أستغفر الله وأتوب اليه

حسبي الله ونعم الوكيل

#2

ابحث عن مشروع HTMLEditor

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

لقد حاولت لكن لم أفهم كيف أضف وأستعمل undo

package javaapplication8;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.AbstractUndoableEdit;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;
import javax.swing.undo.UndoableEditSupport;
import javax.swing.undo.UndoableEdit;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.util.List;


public class Paneau extends JPanel implements MouseListener,MouseMotionListener {
        protected List placeSelected = new LinkedList();
        protected List rectSelected = new LinkedList();
        static   public Rct  rectChoisi;
        static   public Place  placeChoisi;
        Rectangle rctSelection;
        boolean selected = false;

         public Paneau() {

		addMouseListener(this);
		addMouseMotionListener(this);

		}
         public void paintComponent(Graphics g) {
		Graphics2D g2d = (Graphics2D) g;
		super.paintComponent(g2d);
               	setBackground(Color.white);

                if (Prin.graph.rects != null) {
			for (Iterator itr = Prin.graph.rects.iterator(); itr
					.hasNext();) {
                            Rct b = (Rct) itr.next();
                            b.dessiner(g2d);
                        }
		}
                if (Prin.graph.places!= null) {
			for (Iterator itr = Prin.graph.places.iterator(); itr
					.hasNext();) {
                            Place t = (Place) itr.next();
                            t.dessiner(g2d);
                        }
		}
                if(rctSelection!=null)
                	g2d.draw(rctSelection);

               repaint() ;
         }

            public void mouseDragged(MouseEvent e) {
                if (placeChoisi != null & Prin.ETAT == 0) {
			placeChoisi.setX(e.getX());
			placeChoisi.setY(e.getY());

		}
         if (rectChoisi != null & Prin.ETAT == 0) {
			rectChoisi.setX(e.getX());
			rectChoisi.setY(e.getY());

		}
         	repaint();
            }
            public void mousePressed(MouseEvent e) {
                if (placeChoisi == null & Prin.ETAT == 0) {
			placeChoisi = placeProche(e.getX(), e.getY());
                }
                if (rectChoisi == null & Prin.ETAT == 0) {
			rectChoisi = RctProche(e.getX(), e.getY());
                }
                if (placeChoisi == null) {
			Prin.placSelected = placeChoisi;
                }
                if (rectChoisi == null) {
			Prin.recSelected = rectChoisi;
                }
            }
            public void mouseReleased(MouseEvent e) {

	rctSelection=null;
        if (Prin.ETAT == 1 && e.getButton() == e.BUTTON1) {

			Rct nn = new Rct(e.getX(),e.getY());
			Prin.graph.addRect(nn);
			Prin.graph.modifie = true;
			}
         if (Prin.ETAT == 2 && e.getButton() == e.BUTTON1) {

			Place nn = new Place(e.getX(),e.getY());
			Prin.graph.addPlace(nn);
			Prin.graph.modifie = true;
			}
            }
            public void mouseMoved(MouseEvent e) {

            }
            public void mouseClicked(final MouseEvent e) {

	}
	public void mouseEntered(MouseEvent e) { }

	public void mouseExited(MouseEvent e) {	}

        private Place placeProche(int x, int y) {
		Iterator it = Prin.graph.places.iterator();
		while (it.hasNext()) {
			Place s = (Place) it.next();
			if (s.contains(x, y))
				return s;
		}
		return null;
	}

private Rct RctProche(int x, int y) {
		Iterator it = Prin.graph.rects.iterator();
		while (it.hasNext()) {
			Rct s = (Rct) it.next();
			if (s.contains(x, y))
				return s;
		}
		return null;
	}

UndoableEditSupport support = new UndoableEditSupport();

public void addUndoableEditListener(UndoableEditListener listener) {
support.addUndoableEditListener(listener);
}
public void removeUndoableEditListener(UndoableEditListener listener) {
support.removeUndoableEditListener(listener);
}
public void postEdit(UndoableEdit e) {// le fireUndoableEditUpdate....
support.postEdit(e);}

}

كود2

package javaapplication8;
import java.awt.*;
import java.awt.event.*;
//import javax.imageio.stream.FileImageOutputStream;
import javax.swing.*;
import java.io.*;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import java.util.*;
import javax.swing.undo.UndoManager;

public class Prin extends JFrame implements ActionListener {
static public Graph graph;
 static Place placSelected;
 static Rct recSelected;
 public static int ETAT = 0;
 private JPanel jPanel11 = null;
 private JScrollPane jScrollPane = null;
 private JToolBar jToolBar = null;
 private JToggleButton btnCurseur = null;
 private JToggleButton btnRct = null;
 private JToggleButton btnPlace = null;
 private JButton Delete = null;
 JButton undoButton = new JButton();
 JButton redoButton = new JButton();
 static Paneau jPanelDessin = null;
 private JPanel jContentPane = null;
 UndoManager undoManager ;
        public Prin()  {
		super();
		initialize();
                undoManager=new UndoManager();

	}
	private void initialize() {
		this.setSize(700, 400);

		this.setContentPane(getJContentPane());
		this.setTitle("Diagramme d'activité");
                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		graph = new Graph();
                this.setVisible(true);


        }

private JPanel getJPanel11() {
		if (jPanel11 == null) {
			jPanel11 = new JPanel();
			//jPanel11.setLayout(null);
                        jPanel11.setSize(new java.awt.Dimension(20, 50));
                        jPanel11.add(getJRedoButton());
                        jPanel11.add(getJUndoButton());
                        jPanel11.setPreferredSize(new java.awt.Dimension(20,60));
			//jPanel11.add(getJToolBar2(), null);
                        jPanel11.add(getBtnCurseur());
                        jPanel11.add(getBtnRct());
			jPanel11.add(getBtnPlace());


		}
		return jPanel11;
	}

private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBackground(java.awt.Color.white);
			// jScrollPane.setBorder(javax.swing.BorderFactory
			// .createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
			jScrollPane.setViewportView(getjPanelDessin());
			// jScrollPane.getViewport().add(getJPanel12());

		}
		return jScrollPane;
	}
 private JButton getJUndoButton(){
    undoButton.setText("Undo");
    undoButton.setPreferredSize(new java.awt.Dimension(100,30));
    undoButton.addActionListener(new java.awt.event.ActionListener(){
        public void actionPerformed(java.awt.event.ActionEvent e) {
            //undo();
        }

    });
    return undoButton;
}
private JButton getJRedoButton(){
    redoButton.setText("Redo");
    redoButton.setPreferredSize(new java.awt.Dimension(100,30));
    redoButton.addActionListener(new java.awt.event.ActionListener(){
        public void actionPerformed(java.awt.event.ActionEvent e) {
            //redo();
        }

    });
    return redoButton;
}
private JToggleButton getBtnCurseur() {
		if (btnCurseur == null) {
			btnCurseur = new JToggleButton();
			btnCurseur.setText("Curseur   ");
                        btnCurseur.setSize(30,100);
			btnCurseur.setPreferredSize(new java.awt.Dimension(100,30));
			//btnCurseur.setDisabledIcon(new ImageIcon(getClass().getResource("/rel.gif")));
			//btnCurseur.setIcon(new ImageIcon(getClass().getResource("/Images/cur.gif")));
			btnCurseur.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (ETAT != 0) {
						ETAT = 0;
						btnPlace.setSelected(false);
						btnRct.setSelected(false);

					}

				}

			});
		}
		return btnCurseur;
	}
private JToggleButton getBtnRct(){


                   if (btnRct == null) {
			btnRct = new JToggleButton();
			btnRct.setText("Rectangle");
			btnRct.setPreferredSize(new java.awt.Dimension(100,30));
			btnRct.setSelected(false);
			btnRct.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//System.out.println("actionPerformed()");
					if (ETAT != 1) {
						ETAT = 1;
						btnCurseur.setSelected(false);
						btnPlace.setSelected(false);

					} else {
						ETAT = 0;

					}


				}
			});
		}
		return btnRct;
}
     private JToggleButton getBtnPlace(){


                   if (btnPlace == null) {
			btnPlace = new JToggleButton();
			btnPlace.setText("Place");
			btnPlace.setPreferredSize(new java.awt.Dimension(100,30));
			btnPlace.setSelected(false);
			btnPlace.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//System.out.println("actionPerformed()");
					if (ETAT != 2) {
						ETAT = 2;
						btnCurseur.setSelected(false);
						btnRct.setSelected(false);

					} else {
						ETAT = 0;

					}


				}
			});
		}
		return btnPlace;
       }

     private JButton getDelete() {
		if (Delete == null) {
			Delete = new JButton();
			Delete.setPreferredSize(new java.awt.Dimension(100,30));

			Delete.setText("Delete ");
			Delete.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

                                        if (placSelected != null) {
						graph.removePlace();

						placSelected = null;
						getjPanelDessin().repaint();
					}
                                        if (recSelected != null) {
						graph.removeRect();
						recSelected = null;
						getjPanelDessin().repaint();
					}


				}
			});

		}
		return Delete;
	}

     static Paneau getjPanelDessin() {
		if (jPanelDessin == null) {
			jPanelDessin = new Paneau();

		}
		return jPanelDessin;
	}

private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
                      	jContentPane.setLayout(new BorderLayout());
			//jContentPane.add(getJPanel(), java.awt.BorderLayout.NORTH);
			jContentPane.add(getJPanel11(), java.awt.BorderLayout.NORTH);
			jContentPane.add(getJScrollPane(), java.awt.BorderLayout.CENTER);


		}
		return jContentPane;
	}

public void actionPerformed(ActionEvent evt) {

	}


public static void main(String[] args) {

		Prin pr = new Prin();

		pr.setVisible(true);
	}

}

من فضلكم توضيح

:lol: :lol: :lol:

تم تعديل هذه المشاركة بواسطة نجمة7 في 7 مايو 2010 في 19:28

#4

ما المشكلة التي تواجهينها بالضبط

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#5

السلام عليكم ورخمة الله وبركاته

أخي علاء الصالحي لم أعرف كيف أضف Undo/redo لبرنامجي حيث

package javaapplication8;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.AbstractUndoableEdit;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;
import javax.swing.undo.UndoableEditSupport;
import javax.swing.undo.UndoableEdit;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.util.List;


public class Paneau extends JPanel implements MouseListener,MouseMotionListener {
        protected List placeSelected = new LinkedList();
        protected List rectSelected = new LinkedList();
        static   public Rct  rectChoisi;
        static   public Place  placeChoisi;
        Rectangle rctSelection;
        boolean selected = false;

         public Paneau() {

		addMouseListener(this);
		addMouseMotionListener(this);

		}
         public void paintComponent(Graphics g) {
		Graphics2D g2d = (Graphics2D) g;
		super.paintComponent(g2d);
               	setBackground(Color.white);

                if (Prin.graph.rects != null) {
			for (Iterator itr = Prin.graph.rects.iterator(); itr
					.hasNext();) {
                            Rct b = (Rct) itr.next();
                            b.dessiner(g2d);
                        }
		}
                if (Prin.graph.places!= null) {
			for (Iterator itr = Prin.graph.places.iterator(); itr
					.hasNext();) {
                            Place t = (Place) itr.next();
                            t.dessiner(g2d);
                        }
		}
                if(rctSelection!=null)
                	g2d.draw(rctSelection);

               repaint() ;
         }

            public void mouseDragged(MouseEvent e) {
                if (placeChoisi != null & Prin.ETAT == 0) {
			placeChoisi.setX(e.getX());
			placeChoisi.setY(e.getY());

		}
         if (rectChoisi != null & Prin.ETAT == 0) {
			rectChoisi.setX(e.getX());
			rectChoisi.setY(e.getY());

		}
         	repaint();
            }
            public void mousePressed(MouseEvent e) {
                if (placeChoisi == null & Prin.ETAT == 0) {
			placeChoisi = placeProche(e.getX(), e.getY());
                }
                if (rectChoisi == null & Prin.ETAT == 0) {
			rectChoisi = RctProche(e.getX(), e.getY());
                }
                if (placeChoisi == null) {
			Prin.placSelected = placeChoisi;
                }
                if (rectChoisi == null) {
			Prin.recSelected = rectChoisi;
                }
            }
            public void mouseReleased(MouseEvent e) {

	rctSelection=null;
        if (Prin.ETAT == 1 && e.getButton() == e.BUTTON1) {

			Rct nn = new Rct(e.getX(),e.getY());
			Prin.graph.addRect(nn);
			Prin.graph.modifie = true;
			}
         if (Prin.ETAT == 2 && e.getButton() == e.BUTTON1) {

			Place nn = new Place(e.getX(),e.getY());
			Prin.graph.addPlace(nn);
			Prin.graph.modifie = true;
			}
            }
            public void mouseMoved(MouseEvent e) {

            }
            public void mouseClicked(final MouseEvent e) {

	}
	public void mouseEntered(MouseEvent e) { }

	public void mouseExited(MouseEvent e) {	}

        private Place placeProche(int x, int y) {
		Iterator it = Prin.graph.places.iterator();
		while (it.hasNext()) {
			Place s = (Place) it.next();
			if (s.contains(x, y))
				return s;
		}
		return null;
	}

private Rct RctProche(int x, int y) {
		Iterator it = Prin.graph.rects.iterator();
		while (it.hasNext()) {
			Rct s = (Rct) it.next();
			if (s.contains(x, y))
				return s;
		}
		return null;
	}

UndoableEditSupport support = new UndoableEditSupport();

public void addUndoableEditListener(UndoableEditListener listener) {
support.addUndoableEditListener(listener);
}
public void removeUndoableEditListener(UndoableEditListener listener) {
support.removeUndoableEditListener(listener);
}
public void postEdit(UndoableEdit e) {// le fireUndoableEditUpdate....
support.postEdit(e);}

}

package javaapplication8;
import java.awt.*;
import java.awt.event.*;
//import javax.imageio.stream.FileImageOutputStream;
import javax.swing.*;
import java.io.*;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import java.util.*;
import javax.swing.undo.UndoManager;

public class Prin extends JFrame implements ActionListener {
static public Graph graph;
 static Place placSelected;
 static Rct recSelected;
 public static int ETAT = 0;
 private JPanel jPanel11 = null;
 private JScrollPane jScrollPane = null;
 private JToolBar jToolBar = null;
 private JToggleButton btnCurseur = null;
 private JToggleButton btnRct = null;
 private JToggleButton btnPlace = null;
 private JButton Delete = null;
 JButton undoButton = new JButton();
 JButton redoButton = new JButton();
 static Paneau jPanelDessin = null;
 private JPanel jContentPane = null;
 UndoManager undoManager ;
        public Prin()  {
		super();
		initialize();
                undoManager=new UndoManager();

	}
	private void initialize() {
		this.setSize(700, 400);

		this.setContentPane(getJContentPane());
		this.setTitle("Diagramme d'activité");
                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		graph = new Graph();
                this.setVisible(true);


        }

private JPanel getJPanel11() {
		if (jPanel11 == null) {
			jPanel11 = new JPanel();
			//jPanel11.setLayout(null);
                        jPanel11.setSize(new java.awt.Dimension(20, 50));
                        jPanel11.add(getJRedoButton());
                        jPanel11.add(getJUndoButton());
                        jPanel11.setPreferredSize(new java.awt.Dimension(20,60));
			//jPanel11.add(getJToolBar2(), null);
                        jPanel11.add(getBtnCurseur());
                        jPanel11.add(getBtnRct());
			jPanel11.add(getBtnPlace());


		}
		return jPanel11;
	}

private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBackground(java.awt.Color.white);
			// jScrollPane.setBorder(javax.swing.BorderFactory
			// .createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
			jScrollPane.setViewportView(getjPanelDessin());
			// jScrollPane.getViewport().add(getJPanel12());

		}
		return jScrollPane;
	}
 private JButton getJUndoButton(){
    undoButton.setText("Undo");
    undoButton.setPreferredSize(new java.awt.Dimension(100,30));
    undoButton.addActionListener(new java.awt.event.ActionListener(){
        public void actionPerformed(java.awt.event.ActionEvent e) {
            //undo();
        }

    });
    return undoButton;
}
private JButton getJRedoButton(){
    redoButton.setText("Redo");
    redoButton.setPreferredSize(new java.awt.Dimension(100,30));
    redoButton.addActionListener(new java.awt.event.ActionListener(){
        public void actionPerformed(java.awt.event.ActionEvent e) {
            //redo();
        }

    });
    return redoButton;
}
private JToggleButton getBtnCurseur() {
		if (btnCurseur == null) {
			btnCurseur = new JToggleButton();
			btnCurseur.setText("Curseur   ");
                        btnCurseur.setSize(30,100);
			btnCurseur.setPreferredSize(new java.awt.Dimension(100,30));
			//btnCurseur.setDisabledIcon(new ImageIcon(getClass().getResource("/rel.gif")));
			//btnCurseur.setIcon(new ImageIcon(getClass().getResource("/Images/cur.gif")));
			btnCurseur.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (ETAT != 0) {
						ETAT = 0;
						btnPlace.setSelected(false);
						btnRct.setSelected(false);

					}

				}

			});
		}
		return btnCurseur;
	}
private JToggleButton getBtnRct(){


                   if (btnRct == null) {
			btnRct = new JToggleButton();
			btnRct.setText("Rectangle");
			btnRct.setPreferredSize(new java.awt.Dimension(100,30));
			btnRct.setSelected(false);
			btnRct.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//System.out.println("actionPerformed()");
					if (ETAT != 1) {
						ETAT = 1;
						btnCurseur.setSelected(false);
						btnPlace.setSelected(false);

					} else {
						ETAT = 0;

					}


				}
			});
		}
		return btnRct;
}
     private JToggleButton getBtnPlace(){


                   if (btnPlace == null) {
			btnPlace = new JToggleButton();
			btnPlace.setText("Place");
			btnPlace.setPreferredSize(new java.awt.Dimension(100,30));
			btnPlace.setSelected(false);
			btnPlace.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//System.out.println("actionPerformed()");
					if (ETAT != 2) {
						ETAT = 2;
						btnCurseur.setSelected(false);
						btnRct.setSelected(false);

					} else {
						ETAT = 0;

					}


				}
			});
		}
		return btnPlace;
       }

     private JButton getDelete() {
		if (Delete == null) {
			Delete = new JButton();
			Delete.setPreferredSize(new java.awt.Dimension(100,30));

			Delete.setText("Delete ");
			Delete.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

                                        if (placSelected != null) {
						graph.removePlace();

						placSelected = null;
						getjPanelDessin().repaint();
					}
                                        if (recSelected != null) {
						graph.removeRect();
						recSelected = null;
						getjPanelDessin().repaint();
					}


				}
			});

		}
		return Delete;
	}

     static Paneau getjPanelDessin() {
		if (jPanelDessin == null) {
			jPanelDessin = new Paneau();

		}
		return jPanelDessin;
	}

private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
                      	jContentPane.setLayout(new BorderLayout());
			//jContentPane.add(getJPanel(), java.awt.BorderLayout.NORTH);
			jContentPane.add(getJPanel11(), java.awt.BorderLayout.NORTH);
			jContentPane.add(getJScrollPane(), java.awt.BorderLayout.CENTER);


		}
		return jContentPane;
	}

public void actionPerformed(ActionEvent evt) {

	}


public static void main(String[] args) {

		Prin pr = new Prin();

		pr.setVisible(true);
	}

}

package javaapplication8;

import java.util.*;
import java.io.*;
import java.awt.Graphics2D.*;
import java.awt.Graphics.*;
//import javax.swing.undo.UndoManager;


public class Graph  implements Serializable{

        public boolean modifie = false;
	protected List  rects= new LinkedList();
        protected List  places= new LinkedList();
        public short nombreRectMax = 1;
        public short nombrePlaceMax = 1;


        public Graph(){ }


	  public Rct getRect() {
	    for (Iterator itr = rects.iterator(); itr.hasNext(); ) {
	      Rct n = (Rct) itr.next();
	      return n;
	     }
	    return null;
	  }
            public Place getPlace() {
	    for (Iterator itr = rects.iterator(); itr.hasNext(); ) {
	      Place n = (Place) itr.next();
	      return n;
	     }
	    return null;
	  }

	  public void addRect(Rct rect) {
	    ++nombreRectMax;
	    rects.add(rect);
	  }

          public void addPlace(Place place) {
	    ++nombrePlaceMax;
	    places.add(place);
	  }

           public void removePlace() {

	    for (Iterator itr = places.iterator(); itr.hasNext(); ) {
	      Place n = (Place) itr.next();
	           places.remove(n);

	        return;
	      }
	    }
            public void removeRect() {

	    for (Iterator itr = rects.iterator(); itr.hasNext(); ) {
	      Rct n = (Rct) itr.next();
	           rects.remove(n);

	        return;
	      }
	    }

          }

package javaapplication8;
import java.io.Serializable;
import java.awt.*;
import java.util.List;
import java.util.*;


public class Place implements Serializable {
    private int x, y;
    protected List place = new LinkedList();

        public Place(){}

        public Place(int x, int y){
        setX(x);
        setY(y);
        }

        public void setX(int a) {
		x = a;

	}

	public void setY(int b) {
		y = b;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}
        public boolean contains(int a, int b) {
		return (boolean) ((x <= a) & (a <= x + 90) & (y <= b) & (b <= y + 20));
	}
            public void dessiner(Graphics g)
            {
             Graphics2D g2d = (Graphics2D) g;
            g2d.setColor(Color.BLACK);
            g2d.fillOval(x, y, 50, 50);
             }

                  public void addSe(Place place) {
		    this.place.add(place);
		  }

		  public void removeSe(Place place) {
		    this.place.remove(place);
		  }
}

package javaapplication8;


import java.io.Serializable;
import java.awt.*;
import java.util.List;
import java.util.*;


public class Rct implements Serializable {
    private int x, y;
    protected List rect = new LinkedList();

        public Rct(){}

        public Rct(int x, int y){
        setX(x);
        setY(y);
        }

        public void setX(int a) {
		x = a;

	}

	public void setY(int b) {
		y = b;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}
        public boolean contains(int a, int b) {
		return (boolean) ((x <= a) & (a <= x + 90) & (y <= b) & (b <= y + 20));
	}
            public void dessiner(Graphics g)
            {
             Graphics2D g2d = (Graphics2D) g;
            g2d.setColor(Color.BLACK);
            g2d.fillRect(x, y, 60, 50);
             }

                  public void addRect(Rct place) {
		    this.rect.add(place);
		  }

		  public void removeRct(Rct rect) {
		    this.rect.remove(rect);
		  }
}

JavaApplication8.rar

أضغط هنا ولن تندم

http://www.shbab1.com/2minutes.htm

أستغفر الله وأتوب اليه

حسبي الله ونعم الوكيل

#6

أريد أن أفهم أختي ما الذي لم يضبط معك

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

لذا ساعيديني حتى أساعدك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

السلام عليكم ورحمة الله وبركاته

عذرا عن التأخر

أنا لست بارعت في الشرح أتمنى اني تفهموا الشرح المتواضع

 class Paneau extends JPanel implements  MouseListener,MouseMotionListene 

نستطيع من خلالها رسم دائرة ورسم مستطيل وتحريكهما وحدفهما 
public Paneau() {
		addMouseListener(this);
		addMouseMotionListener(this); 
		}

public void paintComponent(Graphics g) {
		Graphics2D g2d = (Graphics2D)
   if (Prin.graph.rects != null) {// Prin.graph.rects  List  rects= new LinkedList();

			for (Iterator itr = Prin.graph.rects.iterator(); itr
					.hasNext();) {
                            Rct b = (Rct) itr.next();//Rct ترسم المستطيل
                            b.dessiner(g2d);
                        }
		}
                if (Prin.graph.places!= null) {// List  places= new LinkedList();

			for (Iterator itr = Prin.graph.places.iterator(); itr
					.hasNext();) {
                            Place t = (Place) itr.next();//Place ترسم دائرة
                            t.dessiner(g2d);
                        }
		}
               repaint() ;
         }

public void mouseDragged(MouseEvent e) {////لتحريك الأشكال من مكانها حسب حركة الفأرة
                if (placeChoisi != null & Prin.ETAT == 0) {
			placeChoisi.setX(e.getX());
			placeChoisi.setY(e.getY());


		}
         if (rectChoisi != null & Prin.ETAT == 0) {
			rectChoisi.setX(e.getX());
			rectChoisi.setY(e.getY());


		}

         	repaint();
            }


 public void mouseReleased(MouseEvent e) {//عند لإضافة الدائرة او المستطيل حسب الضغط على الزر المناسب

	rctSelection=null;
        if (Prin.ETAT == 1 && e.getButton() == e.BUTTON1) {//زر اضافة المستطيل

			Rct nn = new Rct(e.getX(),e.getY());
			Prin.graph.addRect(nn);نضيف المستطيل في List Rects
			Prin.graph.modifie = true;
			}
         if (Prin.ETAT == 2 && e.getButton() == e.BUTTON1) {//زراضافة  الدائرة

			Place nn = new Place(e.getX(),e.getY());
			Prin.graph.addPlace(nn);//نضيف الدائرة الى List Places
			Prin.graph.modifie = true;

			}

            }


المشكل  لا أدري كيف أستعمل 
UndoableEditSupport support = new UndoableEditSupport();

public void addUndoableEditListener(UndoableEditListener listener) {
support.addUndoableEditListener(listener);
}
public void removeUndoableEditListener(UndoableEditListener listener) {
support.removeUndoableEditListener(listener);
}
public void postEdit(UndoableEdit e) {// le fireUndoableEditUpdate....//
support.postEdit(e);}

شكرااااااااااااااااااااااااااااااااااااااااا

أضغط هنا ولن تندم

http://www.shbab1.com/2minutes.htm

أستغفر الله وأتوب اليه

حسبي الله ونعم الوكيل

#8

معقوووووووووووووووووووووووووووووووووووووووول ما فيه حد يجاوب

:calc: :resentful::calc: :calc:

أضغط هنا ولن تندم

http://www.shbab1.com/2minutes.htm

أستغفر الله وأتوب اليه

حسبي الله ونعم الوكيل

#9

يا أخي يجب عليك الإطلاع على الشيفرة الخاصة ببرنامج HTMLEditor

فعلياً أنت لم تقم بذلك

أو قمت بذلك بطريقة غير مبالية على أساس أننا سنساعدك

تأكد أننا سنساعدك لكن عندما نرى الجدية

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10

أظن تضيفي

List  x= new LinkedList();

وتضيفي كل مرة object في كل من méthodes

mouseReleased

mouseDragged

#11

أتوقع أن المشكلة التي تواجهينها هي المشكلة ذاتها التي تحدثت عنها سابقاً ولم أجد الجواب

Copy,Cut&Paste in Paint

عندما اتوصل إلى الحل.. سأخبرك..

كذلك أنتِ.. أخبريني بما يجري معك..

#12

أخي/اختي تميز

هل تريد فقط معرفة كيفية التعامل مع مكتبة الـ Undo الموجودة ضمن مكتبة الـ Swing

أم أنك تريد بالتحديد عمل خاصية udo/redo على برنامجك المطروح بشكل خاص

اذا كان الاول مرادك فيمكن اعطائك فكرة عن المكتبة وامثلة عليها

واذا كان الثاني مرادك

فاخبرنا ما هي الاكشنس التي تريد دعم خاصية الـ undo/redo لها إلى أي حد تريد هذا الدعم

لا بد من صنعاء وان طال السفر

#13
san3aniJava كتب:

أخي/اختي تميز

هل تريد فقط معرفة كيفية التعامل مع مكتبة الـ Undo الموجودة ضمن مكتبة الـ Swing

أم أنك تريد بالتحديد عمل خاصية udo/redo على برنامجك المطروح بشكل خاص

اذا كان الاول مرادك فيمكن اعطائك فكرة عن المكتبة وامثلة عليها

واذا كان الثاني مرادك

فاخبرنا ما هي الاكشنس التي تريد دعم خاصية الـ undo/redo لها إلى أي حد تريد هذا الدعم

مرادي الثاني

أريد

public void mouseDragged(MouseEvent e) {////لتحريك الأشكال من مكانها حسب حركة الفأرة

و

public void mouseReleased(MouseEvent e) {//عند لإضافة الدائرة او المستطيل حسب الضغط على الزر المناسب

الكود السابق

 class Paneau extends JPanel implements  MouseListener,MouseMotionListene 

نستطيع من خلالها رسم دائرة ورسم مستطيل وتحريكهما وحدفهما 
public Paneau() {
                addMouseListener(this);
                addMouseMotionListener(this); 
                }

public void paintComponent(Graphics g) {
                Graphics2D g2d = (Graphics2D)
   if (Prin.graph.rects != null) {// Prin.graph.rects  List  rects= new LinkedList();

                        for (Iterator itr = Prin.graph.rects.iterator(); itr
                                        .hasNext();) {
                            Rct b = (Rct) itr.next();//Rct ترسم المستطيل
                            b.dessiner(g2d);
                        }
                }
                if (Prin.graph.places!= null) {// List  places= new LinkedList();

                        for (Iterator itr = Prin.graph.places.iterator(); itr
                                        .hasNext();) {
                            Place t = (Place) itr.next();//Place ترسم دائرة
                            t.dessiner(g2d);
                        }
                }
               repaint() ;
         }

public void mouseDragged(MouseEvent e) {////لتحريك الأشكال من مكانها حسب حركة الفأرة
                if (placeChoisi != null & Prin.ETAT == 0) {
                        placeChoisi.setX(e.getX());
                        placeChoisi.setY(e.getY());


                }
         if (rectChoisi != null & Prin.ETAT == 0) {
                        rectChoisi.setX(e.getX());
                        rectChoisi.setY(e.getY());


                }

                repaint();
            }


 public void mouseReleased(MouseEvent e) {//عند لإضافة الدائرة او المستطيل حسب الضغط على الزر المناسب

        rctSelection=null;
        if (Prin.ETAT == 1 && e.getButton() == e.BUTTON1) {//زر اضافة المستطيل

                        Rct nn = new Rct(e.getX(),e.getY());
                        Prin.graph.addRect(nn);نضيف المستطيل في List Rects
                        Prin.graph.modifie = true;
                        }
         if (Prin.ETAT == 2 && e.getButton() == e.BUTTON1) {//زراضافة  الدائرة

                        Place nn = new Place(e.getX(),e.getY());
                        Prin.graph.addPlace(nn);//نضيف الدائرة الى List Places
                        Prin.graph.modifie = true;

                        }

            }


المشكل  لا أدري كيف أستعمل 
UndoableEditSupport support = new UndoableEditSupport();

public void addUndoableEditListener(UndoableEditListener listener) {
support.addUndoableEditListener(listener);
}
public void removeUndoableEditListener(UndoableEditListener listener) {
support.removeUndoableEditListener(listener);
}
public void postEdit(UndoableEdit e) {// le fireUndoableEditUpdate....//
support.postEdit(e);}

المرفق به ملف تنفيدي في المجلد dist

شكرا

JavaApplication8.rar

أضغط هنا ولن تندم

http://www.shbab1.com/2minutes.htm

أستغفر الله وأتوب اليه

حسبي الله ونعم الوكيل

#14

معقووووووووووووووووووووووووووووول ما فيه أحد يساعدني

أنا في ورطة يا اخواني

أنا أنتظر ردودكم

:cry: :cry: :cry:

تم تعديل هذه المشاركة بواسطة تميز2009 في 23 مايو 2010 في 17:50

أضغط هنا ولن تندم

http://www.shbab1.com/2minutes.htm

أستغفر الله وأتوب اليه

حسبي الله ونعم الوكيل

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