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

كيف اضيف Background Image للفريم ؟

مغلق
بدأه بنت اليمن في 21 مايو 2005 · 7 رد · 4,709 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

منذ فترة و انا ابحث في المنتدى عن كيفية اضافة خلفية (صورة Background Image) للفريم .. و لم يحلفني الحظ في ان اجد ما اريده ،، و قد جربت العديد من الطرق و لكن الصورة لا تظهر معي في الخلفية بل فوق العناصر التي يحويها الفريم .. و قد وجدت بعض الكلاسس المعقد على النت لكن النتجية لا تظهر معي كما اريد ، ارجوا من من لديه اي فكرة ان يساعدني بها .. :)

مع خالص الشكر ،،

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#2

هلا وضعت لنا محاولتك؟

يمكنك فعل ذلك بالرسم فوق الساحة Panel أولا بعد ذلك رسم المكونات التي على الساحة

Panel p=new Panel(){
public void paint(Graphics g){
g.draw(myImage, xPosition, yPosition);
super.paint(g); //to paint Components
}
};

تأكدي أن تجعلي المكونات شفافة كي لا ترسم كليا على الصورة. component.setOpaque(false);

توجد أمور كثيرة، لكن أفضل من يشرح لك هي الشروحات:

http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Panel.html

http://java.sun.com/j2se/1.5.0/docs/api/ja.../Component.html

http://java.sun.com/j2se/1.5.0/docs/api/ja...t/Graphics.html

كما ينصح باستخدام مكتبات Swing بدلا من awt. مثل JPanel و JFrame وغيرها...

بالتوفيق

#3

السلام عليكم

اختي جربي الكود الاتى بعد ان تضعي اي صوره في الملف الموجود به الكود وذلك بدل الصورة earth.jpg وهو حسب فهمي سيلبي حاجتك

والسلام

import javax.swing.*;
83
import java.awt.*;
import java.awt.event.*;
public class TestFrame extends JFrame
{
public TestFrame() {
super("JLayeredPane Demo");
setSize(256,256);
JPanel content = new JPanel();
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
content.setOpaque(false);
JLabel label1 = new JLabel("Username:");
label1.setForeground(Color.white);
content.add(label1);
JTextField field = new JTextField(15);
content.add(field);
JLabel label2 = new JLabel("Password:");
label2.setForeground(Color.white);
content.add(label2);
JPasswordField fieldPass = new JPasswordField(15);
content.add(fieldPass);
getContentPane().setLayout(new FlowLayout());
getContentPane().add(content);
((JPanel)getContentPane()).setOpaque(false);
ImageIcon earth = new ImageIcon("earth.jpg");
JLabel backlabel = new JLabel(earth);
getLayeredPane().add(backlabel,
new Integer(Integer.MIN_VALUE));
backlabel.setBounds(0,0,earth.getIconWidth(),
earth.getIconHeight());
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(l);
setVisible(true);
}
public static void main(String[] args) {
new TestFrame();
}
}

زورو موقعنا

www.algabal.com

#4

السلام عليكم

اشكرك اخي الخبير ابو مازن عل الرد و معك حق ، كان من المفترض ان اضع محاولاتي اولاً ...

و حتى اختصر عليك الوقت لقد استخدمت الطريقة التي و ضعتها و لكنه يظهر لي خطأ عند الدالة draw

و بالنسبة لمحاولاتي في هذا الصدد كانت كمالتالي :

اولاً قمت بتعريف الصورة كما يلي :

Image pic=Toolkit.getDefaultToolkit().getImage("Winter.jpg");

ثانياً انشأت الحاوي bg_panelكما يلي :

Panel bg_panel=new Panel(){
  public void paint(Graphics g){
  g.drawImage(pic,0,0,this);
  super.paint(g); }
 	 };

لاحظ انني لم استخدم الدالة draw التي طرحتها ولكني استخدمت drawImage .. ترى هل هذا صحيح ؟؟

و اخيراً اضفت بعض الـ RadioBuutons الى الحاوي bg_panel ..

bg_panel.add(rad1);
bg_panel.add(rad2);
bg_panel.add(rad3);

و النتيجة كالمعتاد :) لم يظهر معي شيء ... ترى اين المشكلة ؟؟

-----------------------------------

اشكرك جزيل الشكر اخي akram ، لقج نفذت الكود الذي وضعته و لأول مرة رأيت الخلفية المصورة في الجافا :) :) و لكني لم افهم الكود بالضبط .. لقد قمت بتعريف الصورة كــ ImageIcone :

ImageIcon earth = new ImageIcon("earth.jpg");

ثم اضفت الصورة الى Lable فهل هذا الـLable هو الذي يمثل الخلفية !! (جميل)

خالص شكري لحسن تعاونكم معي (كالمعتاد) :) ..

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#5

لقد عرفت اين المشكلة الآن فقط :) ، و المشكلة كانت خطوة غبية مني كنت قد نسيتها و هي اضافت الـ Panel الى الحاوي :rolleyes: و لهذا لم تظهر معي الخلفية ..

و لمن يريد الاستفادة فإن خطوات اضافة خلفية كالتالي :

اولاً نعرف الصورة و يفضل كمتغير عام:

Image pic=Toolkit.getDefaultToolkit().getImage("Winter.jpg");

ثانياً نعرف Panel ليحتوي الصورة :

  Panel bg_panel=new Panel(){
public void paint(Graphics g){
g.drawImage(pic, 0, 0,this);
super.paint(g); 
}
};

نضيف الادوات داخل الـ Panel :

bg_panel.add(playButton);

و ممكن جعل الادوات شفافة داخل الـ Panel :

playButton.setOpaque(false);

و اخيراً نضيف الـ Panel للحاوي الرئيسي :

contentArea.add(bg_panel);

مع خالص شكري للأخوين ابو مازن و الأخ akram ..

بنت اليمن ،،

تم تعديل هذه المشاركة بواسطة بنت اليمن في 22 مايو 2005 في 22:09

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#6

بنت اليمن هل ضبطت معك الصورة خلفية للفورم , بدون ما تغطي على الأشياء الموجودة ؟

هل احتوى الفورم الصورة بأكملها ,, ممكن تفيديني ؟ أحتاجها من مدة ولم أجد ضالتي

#7

بصراحة الكود ينفع لعمل خلفية للفورم ... و الفكرة ان تضيف اي اداة تريدها

الى نفس البانل Panel التي اضفت الصورة لديها ...

هي طريقة غير مثالية جداً .. لكنها تفي بالغرض مؤقتاً ..

مرفق لك برنامج كامل لعمل الخلفية كصورة .. و مجموعة ازرار فوقها ..

خالص التحية ..

بنت اليمن ...

4_TEST.rar

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#8

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

شكرا لك أختي

أهااا نعتبر البانل كأنها الفريم يعني نلبس الفريم بالبانل ونلبس البانل بالصورة , حلو تفي بالغرض

تم تعديل هذه المشاركة بواسطة طالب حيران في 14 مايو 2007 في 20:04

هذا الموضوع مغلق.

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