السلام عليكم
اريد عمل برنامج chat ويدعم emotions
ولكن لا استطيع استخدام textarea فى حالة الصور فما البديل لها فى هذه الحالة؟
ما اريده هو:
1- استدعاء صورة بواسطة path
2- append it on my text area
ارجو مساعدتى بالكود المناسب لتلك المشكلة
شكرا
السلام عليكم
اريد عمل برنامج chat ويدعم emotions
ولكن لا استطيع استخدام textarea فى حالة الصور فما البديل لها فى هذه الحالة؟
ما اريده هو:
1- استدعاء صورة بواسطة path
2- append it on my text area
ارجو مساعدتى بالكود المناسب لتلك المشكلة
شكرا
JTextArea rr= new JTextArea(); rr.add(new Image....);
طبعا تضع بداخل الكومبوننت كومبوننت من نوع image
mofeedchaar@hotmail.com
هل بامكانك اعطائى تكملة السطر حيثانى لا اعرف كيف اضع image as componet
ما لدى الان هو صورة as Image class
Image img
كيف استخدمها to return a component
على أية حال لقد وضعت image على jlabel
واستخدمت jlabel بدلا من component وذلك لاستخدام خاصية add كما ذكرت
لكن لم تنجح الطريقة ولم يظهر شئ على jtextarea
هل يوجد حل اخر ؟؟؟
شكرا
استخدم JTextPane بدلاً من JTextArea :
http://java.sun.com/docs/books/tutorial/ui...nents/text.html
أبو خالد السوري
شكرا لك لقد جربت استخدام JTextPane
وبالفعل تمكنت من اضافة صورة باستخدام insertIcon method
لكن دائما تضيف فى بداية JTextPane بمعنى أنها دائما ترسم عند (0,0) وما أريده هو ان تصبح as append أى توضع بعد الكلام
لتؤدى وظيفة chat
example
hello! how are u
:lol:
see u soon
:lol:
هذا ما أريد تنفيذه اى يحدث insertion بالتوالى وليس ان تظهر الصورة دائما فى الاعلى
استخدم الكلاس Graphics2D حيث انه فيه ميزات رائعة بالاضافة الى ازاحة نقطة الصفر منها التدوير و الازاحة للرسوم و هذا الكود يقوم بازاحة نقطة الصفر
public void paintComponent( Graphics g ){
super.paintComponent( g );
Graphics2D g2d = ( Graphics2D ) g;
g2d.translate( 250, 250 );
}mofeedchaar@hotmail.com
هذا عرض للمشكلة بالكود
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
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();
}
}صراحة المشكلة الأولى حلت
لن تجد ترتيب مختلف عن المدخلات
لكن مشكلة الأيقونات المتتالية لم أجد حلاً لها إلا أن أفصل بينهم بمسافة
سأحاول مرة أخرى لعل وعسى
تحياتي
الله معك
شكرا جزيلا لك
وجزاكم الله خيرا