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

كيف اضيف صورة على Textarea او ما يماثلها

بدأه eng_asa في 8 أبريل 2008 · 11 رد · 1,357 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد عمل برنامج chat ويدعم emotions

ولكن لا استطيع استخدام textarea فى حالة الصور فما البديل لها فى هذه الحالة؟

ما اريده هو:

1- استدعاء صورة بواسطة path

2- append it on my text area

ارجو مساعدتى بالكود المناسب لتلك المشكلة

شكرا

#2
		JTextArea rr= new JTextArea();
		rr.add(new Image....);

طبعا تضع بداخل الكومبوننت كومبوننت من نوع image

mofeedchaar@hotmail.com

#3

هل بامكانك اعطائى تكملة السطر حيثانى لا اعرف كيف اضع image as componet

ما لدى الان هو صورة as Image class

Image img

كيف استخدمها to return a component

#4

على أية حال لقد وضعت image على jlabel

واستخدمت jlabel بدلا من component وذلك لاستخدام خاصية add كما ذكرت

لكن لم تنجح الطريقة ولم يظهر شئ على jtextarea

هل يوجد حل اخر ؟؟؟

شكرا

#7

شكرا لك لقد جربت استخدام JTextPane

وبالفعل تمكنت من اضافة صورة باستخدام insertIcon method

لكن دائما تضيف فى بداية JTextPane بمعنى أنها دائما ترسم عند (0,0) وما أريده هو ان تصبح as append أى توضع بعد الكلام

لتؤدى وظيفة chat

example

hello! how are u

:lol:

see u soon

:lol:

هذا ما أريد تنفيذه اى يحدث insertion بالتوالى وليس ان تظهر الصورة دائما فى الاعلى

#8

اعرض شيفرتك

لكي نتمكن من مساعدتك بشكل أفضل

تحياتي

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

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

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

728x90.png

#9

استخدم الكلاس Graphics2D حيث انه فيه ميزات رائعة بالاضافة الى ازاحة نقطة الصفر منها التدوير و الازاحة للرسوم و هذا الكود يقوم بازاحة نقطة الصفر

	public void paintComponent( Graphics g ){
		super.paintComponent( g );
		Graphics2D g2d = ( Graphics2D ) g;
		g2d.translate( 250, 250 );
 }

mofeedchaar@hotmail.com

#10

هذا عرض للمشكلة بالكود

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.text.*;


class Tester
{

	Tester()
	{

		Icon happy=new ImageIcon("1.gif");
		Icon sad=new ImageIcon("2.gif");

		JTextPane ta=new JTextPane();
		ta.setEditable(false);
		ta.insertIcon(happy);                       // I added image to appear -> 1

		StyledDocument doc=ta.getStyledDocument();    //now Iam adding a string (hello how are u?)   -> 2
		try
		{	
			doc.insertString(doc.getLength(),"\n hello how are u?",null);
		}catch( BadLocationException e) {e.printStackTrace();}


		ta.insertIcon(sad);              // now I added another image    -> 3
		ta.insertIcon(sad);               // & that is the same image   -> 4

		JFrame frame =new JFrame();
		frame.add(ta);
		frame.setLocation(200,200);
		frame.setSize(300,300);
		frame.setVisible(true);
	}
	public static void main (String args[])
	{
		new Tester();
	}
}

الان عند تشغيل الكود ستلاحظ مشكلتين

1- تجاهل ترتيب الظهور اى الصورة الاولى ثم الجملة ثم صورة ثم صورة وما يحدث هو ظهور الصور دائما فى السطر الاول متجاهلة ماأضفته

2- عند اضافة صورتين متتاليتين متشابهتين ستظهر واحدة فقط

شكرا جزيلا على الاهتمام

تم تعديل هذه المشاركة بواسطة eng_asa في 13 أبريل 2008 في 09:24

#11
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.StyledDocument;


public class Tester
{

public Tester()
{

Icon happy=new ImageIcon("E:\\project\\Test\\src\\1.gif");
System.out.println(happy.getIconHeight());
Icon sad=new ImageIcon("E:\\project\\Test\\src\\2.gif");

JTextPane ta=new JTextPane();
ta.setEditable(true);

StyledDocument doc=ta.getStyledDocument(); //now Iam adding a string (hello how are u?) -> 2
ta.insertIcon(happy); // I added image to appear -> 1
ta.setCaretPosition(doc.getLength());

ta.insertIcon(sad); // now I added another image -> 3
try
{
doc.insertString(doc.getLength()," ",null);
ta.setCaretPosition(doc.getLength());
}catch( BadLocationException e) {e.printStackTrace();}
System.out.println(doc.getLength());
ta.insertIcon(sad); // & that is the same image -> 4

JFrame frame =new JFrame();
frame.add(ta);
frame.setLocation(200,200);
frame.setSize(300,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String args[])
{
new Tester();
}
}

صراحة المشكلة الأولى حلت

لن تجد ترتيب مختلف عن المدخلات

لكن مشكلة الأيقونات المتتالية لم أجد حلاً لها إلا أن أفصل بينهم بمسافة

سأحاول مرة أخرى لعل وعسى

تحياتي

الله معك

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

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

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

728x90.png

#12

شكرا جزيلا لك

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

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