㈠ JAVA 怎麼在JPanel這個容器中插入背景圖片
要在JPanel中顯示圖片
可以將一JLabel控制項加入其中,在JLabel中添加圖片,如:
JLabel lb = new JLabel(new ImageIcon(".\\xxx\\xx.jpg"));
jPanel1.add(lb);
應該可以,不知是否會答非所問?
package .;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 如何在JPanel中顯示圖片
* @author jink2005
*
*/
public class ImagePane extends JPanel
{
JLabel jl = null;
ImageIcon img = null;
/**
* @param args
*/
public ImagePane()
{
img = new ImageIcon("E:\\eclipse\\workspace\\Study\\\\\\horse.jpg");
jl = new JLabel(img);
this.setLayout(new BorderLayout());
this.add(jl, BorderLayout.CENTER);
}
public static void main(String[] args)
{
JFrame test = new JFrame("Image Pane");
test.getContentPane().add(new ImagePane());
test.pack();
test.setVisible(true);
test.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
歡迎訪問我的學習日誌http://jink2005.blog.sohu.com/和我一起交流。
㈡ java的jpanel上添加背景圖片後eclipse不顯示背景圖片,但運行後卻看得到
p4=newJPanel(newBorderLayout());
p2=newJPanel(newCardLayout());
//處理p2,p3,p4
p2_lab1=newJLabel(newImageIcon("image/21.jpg"));
p2_lab2=newJLabel(newImageIcon("image/22.jpg"));
//把以上倆加入到P2中
p2.add(p2_lab1,"0");
p2.add(p2_lab2,"1");
this.cardp3=newCardLayout();
p3=newJPanel(this.cardp3);
//先給P3加入一個主界面的卡片
Imagezhu_image=null;
try{
zhu_image=ImageIO.read(newFile("image/11.jpg"));
}catch(Exceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
ImagePanelip=newImagePanel(zhu_image);
p3.add(ip,"0");
//對P3添加幾個JLabel
JLabelrs=newJLabel(newImageIcon("image/renshi.jpg"));
p3.add(rs,"1");
JLabeldrgl=newJLabel(newImageIcon("image/dengru.jpg"));
p3.add(drgl,"2");
//把p2p3裝入P4中
p4.add(p2,"West");
p4.add(p3,"Center");
//做一個拆分窗口分別存放P1P4
jsp1=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,p1,p4);
//指定左邊的面板佔多大像素
jsp1.setDividerLocation(120);
//把邊界線設為沒有
jsp1.setDividerSize(0);
㈢ JPanel的背景圖片如何設置
publicclassTest{privateJFrameframe=newJFrame("背景圖片測試");
privateJPanelimagePanel;
privateImageIconbackground;
publicstaticvoidmain(String[]args){newTest();}
publicTest(){background=newImageIcon("1.jpg");//背景圖片
JLabellabel=newJLabel(background);//把背景圖片顯示在一個標簽裡面
//把標簽的大小位置設置為圖片剛好填充整個面板
label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
//把內容窗格轉化為JPanel,否則不能用方法setOpaque()來使內容窗格透明
imagePanel=(JPanel)frame.getContentPane();
imagePanel.setOpaque(false);
//內容窗格默認的布局管理器為BorderLayout
imagePanel.setLayout(newFlowLayout());
imagePanel.add(newJButton("測試按鈕"));
frame.getLayeredPane().setLayout(null);
//把背景圖片添加到分層窗格的最底層作為背景
frame.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
㈣ java中swing界面上怎麼給jpanel上添加背景圖片
//重寫JPanel的這個方法就可以了
@Override
publicvoidpaintComponent(Graphicsgs){
Graphics2Dg=(Graphics2D)gs;
super.paintComponent(g);
//畫背景圖片
Imageimage=Toolkit.getDefaultToolkit().getImage(getClass().getResource(imgPath));
g.drawImage(image,0,0,width,height,this);
}
一個完整的代碼:
packagetest;
importjava.awt.Graphics;
importjava.awt.Image;
importjava.net.URL;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
//為窗口添加背景圖片
publicclassJFrameBackground{
privateJFrameframe=newJFrame("帶背景圖片的JFrame");
privateJPanelimagePanel;
privateImageIconbackgroundimg;
publicJFrameBackground(){
imagePanel=newJPanel(){
@Override
protectedvoidpaintComponent(Graphicsg){
super.paintComponent(g);
URLlocation=this.getClass().getResource("grapes.gif");
backgroundimg=newImageIcon(location);
Imageimg=backgroundimg.getImage();
g.drawImage(img,0,0,backgroundimg.getIconWidth(),
backgroundimg.getIconHeight(),
backgroundimg.getImageObserver());
frame.setSize(backgroundimg.getIconWidth(),
backgroundimg.getIconHeight());
}
};
frame.add(imagePanel);
frame.setVisible(true);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]args){
newJFrameBackground();
}
}
這是運行的一個截圖:
參考網址:
http://www.linuxidc.com/Linux/2011-08/41689.htm 兩種設置背景的方法
http://blog.csdn.net/one_and_only4711/article/details/6594770 動態改變背景大小
㈤ jDialog已添加兩個JPanel,如何給jDialog添加背景圖片啊,並且JPanel是透明的,求大神!
按照你的要求給jDialog添加背景圖片的Java程序如下
注意 背景圖片要放在Java當前項目的根目錄下
比如你的當前項目名是project1, 在D:projectproject1 下就是你的當前項目的根目錄(其中D:project只是打個比方,以你的實際目錄為准)
importjava.awt.BorderLayout;
importjava.awt.Container;
importjava.awt.Dimension;
importjava.awt.Image;
importjava.awt.Point;
importjava.awt.Rectangle;
importjava.awt.Toolkit;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JLabel;
importjavax.swing.JLayeredPane;
importjavax.swing.JPanel;
publicclassD{
D(){
JDialogjDialog=newJDialog();
jDialog.setSize(400,200);
JPaneljp1=newJPanel();
JPaneljp2=newJPanel();
Containercontainer=jDialog.getContentPane();
JPanelpanelBg=newJPanel();
JPanelpanelContent=newJPanel();
JLayeredPanelp=newJLayeredPane();
Dimensiondimension=newDimension(jDialog.getWidth(),jDialog.getHeight());
lp.setSize(dimension);
panelContent.setLayout(newBorderLayout());
ImageimageBg=Toolkit.getDefaultToolkit().getImage("autumn1.jpg");
ImageIconimageIcon=newImageIcon(imageBg.getScaledInstance
(dimension.width,dimension.height,Image.SCALE_FAST));
JLabeljl1=newJLabel(imageIcon);
Pointorigin=newPoint(0,0);
Rectanglerectangle=newRectangle(origin,dimension);
panelBg.setBounds(rectangle);
panelBg.setLayout(newBorderLayout());
panelBg.add(jl1,BorderLayout.CENTER);
JLabeljl=newJLabel("正在測量......");
jp1.add(jl);
JButtonjb=newJButton("取消");
jp2.add(jb);
jp1.setOpaque(false);
jp2.setOpaque(false);
panelContent.setBounds(rectangle);
panelContent.add(jp1,BorderLayout.CENTER);
panelContent.add(jp2,BorderLayout.SOUTH);
panelContent.setOpaque(false);
lp.add(panelBg,newInteger(0));
lp.add(panelContent,newInteger(1));
container.add(lp,BorderLayout.CENTER);
jDialog.setUndecorated(true);
jDialog.setLocationRelativeTo(null);
jDialog.setVisible(true);
}
publicstaticvoidmain(String[]args){
newD();
}
}
運行結果