Ⅰ 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);
Ⅱ 在java中怎么样设置JPanel里面的背景图片
java要加背景图比较麻烦,需要重载paintComponent方法,下面以JPanel为例,其它按此继承就可
JPanel jContentPane = new getpane(800,600,"images\\0044.jpg");
jContentPane.setLayout(null);
jContentPane.setOpaque(false);//此处要设为false
jContentPane.setAlignmentY(0.5F);
jContentPane.add(jLabel, null);
jContentPane.add(getJTestYear(), null);
this.initComboBox();
jContentPane.add(getJSearchByName(), null);
jContentPane.add(getJSearchByID(), null);
jContentPane.add(getJIDOrName(), null);
jContentPane.add(jLabel1, null);
jContentPane.add(getJPanel(), null);
this.setContentPane(jContentPane);
class getpane extends JPanel{
private static final long serialVersionUID = 1L;
int width=0,hight=0;
String imgpath = "";
public getpane(int width,int hight,String file){
this.width = width;
this.hight = hight;
imgpath = file;
}
protected void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon(imgpath);
Image img = icon.getImage();
g.drawImage(img, 0, 0, width, hight, this);
}
}
Ⅲ java panel设置背景图片
要在panel上面加图片,需要重写paint方法,那样就麻烦了,JLabel有现成的设置方法;
JLabel l=new JLabel();
Icon icon=new ImageIcon("D:\\a.jpg"); //在此直接创建对象
l.setIcon(icon);
然后把你原来放在panel上的东西放在JLabel上面,再把JLabel放在panel上面就可以了
Ⅳ 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的背景图片问题
写一个ImageJPanel类继承自JPanel,在paintComponent方法中用g.drawImage绘制Image背景图片就挡不着第一张卡片上的四个按钮了。
完整的程序如下:(注意把背景图片的路径换成你的背景图片路径)
importjava.awt.CardLayout;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.awt.GridLayout;
importjava.awt.Image;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JSplitPane;
{
=1L;
JPaneljp1=newJPanel();
JPaneltmpjp1=newJPanel();
JPaneljp2=newJPanel();
JPanelcard_jp1=newJPanel();
JPanelcard_jp2=newJPanel();
JPanelcard_jp3=newJPanel();
JPanelcard_jp4=newJPanel();
JButtonjb1=newJButton("按钮1");
JButtonjb2=newJButton("按钮2");
JButtonjb3=newJButton("按钮3");
JButtonjb4=newJButton("按钮4");
JSplitPanejsp=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jp1,jp2);
CardLayoutcl=newCardLayout();
intj=1;
D(){
tmpjp1.setLayout(newGridLayout(4,1,5,5));
tmpjp1.add(jb1);tmpjp1.add(jb2);tmpjp1.add(jb3);tmpjp1.add(jb4);
jp1.add(tmpjp1);
jp2.setLayout(cl);
JPanelp[]=newJPanel[4];
p[0]=newImageJPanel();
jp2.add(p[0],String.valueOf(0));
for(inti=1;i<4;i++){
p[i]=newJPanel();
jp2.add(p[i],String.valueOf(i));
}
JButtonb[]=newJButton[4];
for(inti=1;i<4;i++){
inta=i+1;
b[i]=newJButton("第"+a+"页,下一页");
b[i].addActionListener(this);
p[i].add(b[i]);
}
jsp.setResizeWeight(0.3);
add(jsp);
setSize(800,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
publicstaticvoidmain(String[]args){
newD();
}
@Override
publicvoidactionPerformed(ActionEvente){
cl.show(jp2,String.valueOf(j++));
if(j==4)j=0;
}
classImageJPanelextendsJPanel{
privateImageimage;
JButtoncard_jb1=newJButton("按钮1");
JButtoncard_jb2=newJButton("按钮2");
JButtoncard_jb3=newJButton("按钮3");
JButtonjb=newJButton("第1页,下一页");
publicImageJPanel(){
super();
setOpaque(true);
add(card_jb1);
add(card_jb2);
add(card_jb3);
jb.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
cl.show(jp2,String.valueOf(j++));
if(j==4)j=0;
}
});
add(jb);
image=Toolkit.getDefaultToolkit().getImage("C:/tmp/F/3.jpg");//这里换成你的背景图片地址
}
publicvoidpaintComponent(Graphicsg){
super.paintComponent(g);
setBackground(Color.WHITE);
if(image!=null){
intheight=image.getHeight(this);
intwidth=image.getWidth(this);
if(height!=-1&&height>getHeight())
height=getHeight();
if(width!=-1&&width>getWidth())
width=getWidth();
intx=(int)(((double)(getWidth()-width))/2.0);
inty=(int)(((double)(getHeight()-height))/2.0);
g.drawImage(image,x,y,width,height,this);
}
}
}
}
Ⅵ java中,如果一个jframe中有多个jpanel,怎么对其中的某个jpanel添加背景图片
自己创建一个JPanel类
继承JPanel
然后重写pain()方法
Image
picture=new
ImageIcon("图片路径").getImage();
g.draw(picture,0,0,null);
然后在你的窗体中直接调用你写JPanel类
在把这个JPanel
的属性(Opaque)设置为false
即显示设置为透明
Ⅶ JAVA怎样让JLabel透明,显示出下面的JPanel背景
import javax.swing.*;
import java.awt.*;
public class BackGround extends JFrame {
Container content;
Toolkit toolkit;
JLabel bkLabel = new JLabel(); // 背景图片标签
JLabel horseLabel = new JLabel();
JButton bButton;
int screenWidth, screenHeight, WIDTH, HEIGHT;
ImageIcon backImage, bImage;
BackGround() {
content = getContentPane();
toolkit = Toolkit.getDefaultToolkit();
screenWidth = toolkit.getScreenSize().width;
screenHeight = toolkit.getScreenSize().height;
bImage = new ImageIcon("pic/logo.jpg");
//我的笨方法
JLabel image_lab = new JLabel(new ImageIcon("D:\\pic\\logo.jpg"));
//编译的时候会帮你把文件拷贝到classes目录下面去
//同时要达到LZ的效果很简单,两个Panel。直接覆盖的话,如果覆盖面板小于底层面板,当鼠标移动到底层面板区域。则显示了,所以建议加上 //setEnabled(false);这样做LZ你不觉得复杂了吗?你直接在我的image_lab 上加载组件不行吗?或者你先都把组件隐藏了,等用户触发事件再显//示也可以啊。
//
backImage = new ImageIcon("pic/background.gif");
bkLabel.setIcon(backImage);
bkLabel.setOpaque(true);
WIDTH = backImage.getIconWidth();
HEIGHT = backImage.getIconHeight();
content.add(bkLabel, -1); // 添加背景图片
bButton = new JButton(bImage);
JPanel panel2 = new JPanel();
panel2.setOpaque(false); // 设置panel2背景透明
panel2.setPreferredSize(new Dimension(40, 40));
panel2.add(bButton);
content.add(panel2);
validate();
setBounds(300, 200, WIDTH, HEIGHT);
setLocation((screenWidth - WIDTH) / 2, (screenHeight - HEIGHT) / 2);
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args)
{
new BackGround();
}
}
Ⅷ 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 动态改变背景大小
Ⅸ java 窗体中添加背景图片的方法
import java.awt.*;
import java.net.URL;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import java.awt.event.*;
public class Example1 extends JFrame{
public static void main(String[] args){
JFrame jf=new JFrame("系统登录");
JPanel jpanel = new JPanel();
jf.setContentPane(jpanel);
//设置窗口在屏幕中居中显示
double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int x=(int)(width-300)/2;
int y=(int)(height-180)/2;
jf.setBounds(x,y,300,180);
//添加标签组件
GridLayout gird = new GridLayout(3,0);
JPanel jpanel1=new JPanel();
JPanel jpanel2=new JPanel();
JPanel jpanel3=new JPanel();
jpanel.setLayout(gird);
jpanel.add(jpanel1);
jpanel.add(jpanel2);
jpanel.add(jpanel3);
ImageIcon img = new ImageIcon("111.png");
JLabel imgLabel = new JLabel(img);//将背景图放在标签里。
jf.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
JLabel name=new JLabel("姓 名:");
JTextField nametext=new JTextField(10);
JLabel pwd=new JLabel("密 码:");
JPasswordField pwd1=new JPasswordField(10);
JButton login=new JButton("登录");
JButton exit=new JButton("退出");
jpanel1.add(name);
jpanel1.add(nametext);
jpanel2.add(pwd);
jpanel2.add(pwd1);
jpanel3.add(login);
jpanel3.add(exit);
jf.getLayeredPane().setLayout(null);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jpanel.setOpaque(false);
jpanel1.setOpaque(false);
jpanel2.setOpaque(false);
jpanel3.setOpaque(false);
jf.setVisible(true);
}
}
那个图片 "111.png"你放到你创建的项目的文件夹里就行 测试成功
Ⅹ java 中的JPanel插入背景图片和按钮的问题
重写JPanel的paintComponent方法:
JPanel jp = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon img = new ImageIcon("xxx.jpg");
g.drawImage(img.getImage(), 0, 0, null);
}
};