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

تحرير وافلات نسخ من الصور

بدأه زهور برية في 14 أكتوبر 2008 · 4 رد · 709 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي برنامج وضعت فيه صندوق الأدوات

يحوي بعض الصور مستطيل -مربع- خط .....

المهم اني أريد

تحرير وافلات نسخ من هذه الاشكال

يعني أنا عندما اضغط بالفأرة على المستطيل أريده يأخذ نسخة من المستطيل ويرسمه في

frame work

عملية التحرير والافلات

ليس لدي فيها مشكلة

المشكلة في أخذ نسخة من الشكل ووضعه في

frame work

هل أجد من يساعدني مشكورا

تم تعديل هذه المشاركة بواسطة زهور برية في 14 أكتوبر 2008 في 07:21

#2

خزن الأشكال التي تم سحبها في ليستة

ثم في paintComponent

قم بعمل تكرار عليها

اعرض الشيفرة خاصتك لمساعدة أكثر

تحياتي

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

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

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

728x90.png

#3

أشكرك أخي جدا على ردك لي

وأعتذر عن التأخير لإني انشغلت بالمحاولات فيه

ولكن الى الآن لم اتوصل للنتيجة

هذا هو الكود :

package dnd;



import java.awt.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import javax.swing.*;
import java.io.*;
import javax.swing.border.Border;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class collaborationDND extends JFrame 
implements DragGestureListener, DragSourceListener, DropTargetListener
{
	Container cpane;
DropTarget mytarget;
DragSource mysource;
DragGestureRecognizer dgr;

private ImageIcon m1 = null; 
private ImageIcon m2 = null;
private ImageIcon m3 = null;
String path1="C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\line.gif";
String path2="C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\instance.gif";
String path3="C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\multiObject.gif";
private int num;

JLabel source2;
JLabel source1;
JList list1;
JTextArea text1;
DefaultListModel lmod;
DrawPanel panel1;
public collaborationDND()
{
	super("collaboration DND");
	m1=  new ImageIcon("C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\line.gif");
	m2= new ImageIcon("C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\instance.gif");
	m3= new ImageIcon("C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\multiObject.gif");	   

	cpane = getContentPane();
	cpane.setLayout(new BorderLayout());
	lmod = new DefaultListModel();
	list1 = new JList(lmod);
	list1.setBackground(Color.LIGHT_GRAY);
	Border listPanelBorder = BorderFactory.createTitledBorder("collaboration tool");
	list1.setBorder(listPanelBorder);

	panel1=new DrawPanel(); 
	panel1.setBackground(Color.DARK_GRAY);

	//panel1.add(new JLabel(m1));

   //===========================================
	lmod.addElement(m1);
	lmod.addElement(m2);
	lmod.addElement(m3);
   //===========================================
   mysource = new DragSource();

mytarget = new DropTarget(panel1, 
DnDConstants.ACTION_COPY_OR_MOVE, this);

dgr = mysource.createDefaultDragGestureRecognizer(list1,
DnDConstants.ACTION_COPY_OR_MOVE, this); 

   //===========================================
	cpane.add( BorderLayout.WEST, list1);
	cpane.add( BorderLayout.CENTER, panel1); 
	 //=======================================

		  list1.addListSelectionListener(new
 javax.swing.event.ListSelectionListener() {
			 public void valueChanged(javax.swing.event.ListSelectionEvent evt)
 {
					if(list1.getSelectedIndex()==0)
							 num=0;

					else  if(list1.getSelectedIndex()==1)
							 num=1;

					else if(list1.getSelectedIndex()==2)
							 num=2;


			 }
		 });
//==============================================================

	setBounds(100, 100, 700, 700);
	setVisible(true);


}


	public static void main(String [] args) {
collaborationDND d1;
d1 = new collaborationDND();
d1.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent we) {
System.exit(0);
} } );
}

   public void dragGestureRecognized(DragGestureEvent e) {
		if(num==0)
		{ StringSelection sel = new StringSelection(path1);
		mysource.startDrag(e,DragSource.DefaultCopyDrop, sel, this);
		}
		else  if(num==1)
		{ StringSelection sel = new StringSelection(path2);
		mysource.startDrag(e,DragSource.DefaultCopyDrop, sel, this);
		}
		else  if(num==2)
		{ StringSelection sel = new StringSelection(path3);
		mysource.startDrag(e,DragSource.DefaultCopyDrop, sel, this);
		}
	}

   public void dragEnter(DropTargetDragEvent e) {
System.out.println("dragEnter");
e.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
}

 //=============================================================
public void dragExit(DropTargetEvent e) { 
	repaint();

System.out.println("dragExit");
}
public void dragOver(DropTargetDragEvent e) {
	repaint();

System.out.println("dragOver (drop)");
}
public void dropActionChanged(DropTargetDragEvent e) {
	repaint();

System.out.println("dropActionChanged");
}

public void dragDropEnd(DragSourceDropEvent e) {


System.out.println("dragDropEnd");
}
public void dragEnter(DragSourceDragEvent e) {

System.out.println("dragEnter");
}
public void dragExit(DragSourceEvent e) {


System.out.println("dragExit");
}
public void dragOver(DragSourceDragEvent e) {


System.out.println("dragOver (drag)");
}
public void dropActionChanged(DragSourceDragEvent e) {


System.out.println("dragActionChanged (drag)");
}

	//=================================================
   public void drop(DropTargetDropEvent e) {
System.out.println("drop");
try {

	Transferable tr = e.getTransferable();
if (tr.isDataFlavorSupported(DataFlavor.stringFlavor)) {

e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
String s = (String)tr.getTransferData(DataFlavor.stringFlavor);

System.out.println(s);
//ImageIcon k = new ImageIcon(s);
panel1.getURL(s);

e.getDropTargetContext().dropComplete(true);  
}
else {
e.rejectDrop();
}
}
catch (Exception ex) {
System.out.println("Data transfer exception: " + ex);
}
}

}
//=========================================================
class DrawPanel extends JPanel
{
	private String Spath1="C:\\Documents and Settings\\majdah\\Desktop\\dnd\\src\\dnd\\line.gif";
	private boolean flag= false;

	public DrawPanel()
	{

	}

	public void getURL(String s)
	{
	 Graphics2D g = (Graphics2D) getGraphics();

	 Spath1 = s;  
	 flag = true;
	 System.out.println(flag);
   this.paintComponent(g);
	}

	//==========================================================================
	public void paintComponent(Graphics g) {
	// super.paintComponent(g);
	 if(flag)
	 {ImageIcon image =   new ImageIcon(Spath1);
   image.paintIcon(this, g, 0, 0);
	 flag=false;}

	}
	//=========================================================================

}//end JPANEL

إذا جربت الكود ستلاحظ أنه يدرج الشكل ثم إذا قمت ادراج شكل آخر يحذف الأول

أنا أريد أن يحتفظ

JPanel

بكل الصور المدرجة عليه.

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

جزاكم الله خير

تم تعديل هذه المشاركة بواسطة زهور برية في 19 أكتوبر 2008 في 06:01

#4

للرفع

أتمنى احد يفيدني بحل او روابط لمواضيع

لإنني طالبة مشروع تخرج وبرنامجي يعتمد على الرسم بشكل كبير .

alaadiaa كتب:
ثم في paintComponent

قم بعمل تكرار عليها

طريقة التكرار هذه التي أحتاجها

#5

هناك مشروع رسام في القسم

راجعيه وستجدي ما تحتاجين اليه

تحياتي

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

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

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

728x90.png

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…