㈠ 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();
}
}
运行结果