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

مشكلة في ImageApplet

بدأه ريحانة الاقصى في 12 سبتمبر 2011 · 3 رد · 307 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اضع خلفية للبنل حسب الكود التالي

import javax.swing.*;
import java.awt.*;

/** Demonstrate drawing an image. **/
public class ImageApplet extends JApplet
{
  public void init () {
    Container content_pane = getContentPane ();

    // Grab the image.
    Image img = getImage (getCodeBase (), "liftoff.jpg");

    // Create an instanceof DrawingPanel
    DrawingPanel drawing_panel =  new DrawingPanel (img);

    // Add the DrawingPanel to the content pane.
    content_pane.add (drawing_panel);
  } // init

} // class ImageApplet

class DrawingPanel extends JPanel
{
  Image img;

  DrawingPanel (Image img)
  { this.img = img; }

  public void paintComponent (Graphics g) {
   super.paintComponent (g);

   // Use the image width & height to find the starting point
   int imgX = getSize ().width/2 - img.getWidth (this);
   int imgY = getSize ().height/2 - img.getHeight (this);

   //Draw image centered in the middle of the panel    
   g.drawImage (img, imgX, imgY, this);
  } // paintComponent

} // DrawingPanel

عند تطبيق هاد الكود على برنامجي يعمل تمام ولكن المشكله ان الصورة وجميع الازرار والمكونات على البنل لا تظهر الا بعد الضغط بالماوس داخل الابلت وبعدها اي تحديث للابلت تبقة الصورة والمكونات موجودة

لماذا ؟؟

يصعب وضع الكود الاصلي لطوله

#2

هل جربتي اضافة كود الرسم في الدالة paint الخاصة بالابليت؟

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3
mental-driller كتب:

هل جربتي اضافة كود الرسم في الدالة paint الخاصة بالابليت؟

نعم جربت وعندها اصبحت تظهر الصورة مباشرة ولكن الرسم والازرار وغيرها لا تظهر

انا استخدمت الكلاس الذي يرث الابلت فقط لغرض ان اضع فيه extend japplet

اما الرسم وباقي العمل في كلاسات اخرى

#4

التحديث الخاص بالابليت يحدث في الدالة paint ولذلك يجب ان تتأكدي من التشفير الخاص بهذه الدالة يوافق ما تريدين فعله

بالنسبة لتحديث الرسم : جربي استدعاء الدالة repaint من داخل الدالة paint

تم تعديل هذه المشاركة بواسطة mental-driller في 13 سبتمبر 2011 في 00:33

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

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