ورود

View Full Version : چگونه JPanle ای با Background داشته باشم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟



vahid83
چهارشنبه 20 مرداد 1389, 12:28 عصر
سلامی دوباره

فکر کنم عنوان تاپیک خودش روشنگر مشکل من باشه!
کدهای زیادی رو دیدم ولی یا جواب ندادند و یا برای JFrame Background بودند. من میخوام حتی یکسری Lable هم روی این JPanel نمایش داده بشه.
میشه هرچه زودتر راهنماییم کنید چون زمان خیلی خیلی خیلی و خیلی کمی دارم.:افسرده:
ممنون:بوس:

vahid83
چهارشنبه 20 مرداد 1389, 21:29 عصر
دوستان و اساتید

باور کنید که وقتم کمه، باید نهایت تا شنبه پروژه رو تحویل بدم. می خوام یه خورده رو ظاهرش کار کنم.

vahid83
شنبه 23 مرداد 1389, 10:53 صبح
دوستان گرامی سلام
خودم مشکلمو پیدا کردم. دیگه خودتونو به زحمت نندازید!
اول باید یک کلاس به اسم ImagePanel تعریف کنید. با کدهای زیر:

import java.awt.Graphics;
import java.awt.Image;
import java.awt.LayoutManager;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class ImagePanel extends JPanel
{
/*the default image to use*/
String imageFile = "/Images/OmidWATCH2.png";

public ImagePanel()
{
super();
}

public ImagePanel(String image)
{
super();
this.imageFile = image;
}

public ImagePanel(LayoutManager layout)
{
super(layout);
}

public void paintComponent(Graphics g)
{
/*create image icon to get image*/
ImageIcon imageicon = new ImageIcon(getClass().getResource(imageFile));
Image image = imageicon.getImage();

/*Draw image on the panel*/
super.paintComponent(g);

if (image != null)
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}

چون من از Netbeans استفاده می کنم. این کدها رو به قسمت Constructor برنامه اضافه کردم. راستی PNL_logo یه JPanel که از طریق Netbeans Palette به فرمم اضافه کردم.


PNL_logo = new ImagePanel(new FlowLayout(FlowLayout.LEFT,450,48));
add(PNL_logo,BorderLayout.NORTH);
pack();
initComponents();

امیدوارم مورد استفاده قرار بگیره!