Java怎么添加背景图片?
如图怎么在下面空白区域加上一张背景图片

声明:本网站依照法律规定提供财经资讯,未授权或允许任何组织与个人发布交易广告。对任何广告信息请谨慎交易,谨防诈骗。举报邮箱:xxxxxxxxx@qq.com
2016-07-10 21:38最佳答案
看在50分面子上...从网上找的...
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test
{
private JFrame frame = new JFrame("背景图片测试");
private JPanel imagePanel ;
private ImageIcon background;
public static void main(String[] args)
{
new Test();
}
public Test()
{
background = new ImageIcon("1.jpg");//背景图片
JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel)frame.getContentPane();
imagePanel.setOpaque(false);
// 内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
JButton b=new JButton("测试按钮");
imagePanel.add(b);
b.setOpaque(false);
frame.getLayeredPane().setLayout(null);
// 把背景图片添加到分层窗格的最底层作为背景
frame.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(background.getIconWidth(),background.getIconHeight());
frame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test
{
private JFrame frame = new JFrame("背景图片测试");
private JPanel imagePanel ;
private ImageIcon background;
public static void main(String[] args)
{
new Test();
}
public Test()
{
background = new ImageIcon("1.jpg");//背景图片
JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel)frame.getContentPane();
imagePanel.setOpaque(false);
// 内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
JButton b=new JButton("测试按钮");
imagePanel.add(b);
b.setOpaque(false);
frame.getLayeredPane().setLayout(null);
// 把背景图片添加到分层窗格的最底层作为背景
frame.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(background.getIconWidth(),background.getIconHeight());
frame.setVisible(true);
}
}
其他回答(共7条)
-
2016-07-10 21:50 齐春春 客户经理
import java.awt.*;
import javax.swing.*;
public class TestBackgroundColor extends JFrame {
public static void main(String[] args) {
TestBackgroundColor tbc = new TestBackgroundColor();
tbc.setVisible(true);
}
private JPanel imagePanel;
private ImageIcon background;
public TestBackgroundColor() {
background = new ImageIcon("C:\\Users\\Administrator\\Documents\\
My FTPRush Downloads\\项目\\Photoes\\007.jpg");//背景图片
JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
//把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
//把内容碃础百飞知读版嫂保讥窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel)this.getContentPane();
imagePanel.setOpaque(false);
//内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
imagePanel.add(new JButton("测试按钮"));
this.getLayeredPane().setLayout(null);
//把背景图片添加到分层窗格的最底层作为背景
this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(background.getIconWidth(),background.getIconHeight());
this.setVisible(true);
}
}
实现效果:
-
2016-07-10 21:47 龚崇权 客户经理
Java在JFrame面板上显示背景文字的方法:
主函数:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
HAPPY frame = new HAPPY();
//frame.setVisible(true); 这行代码,可加可不加,并不会影响最终结果,但是在构造函数中一定要添加;
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
构造函数(关键代码):
JFrame frame=new JFrame("\设\置\背\景\图\片 ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon img = new ImageIcon("src/images/1.jpg");//这是背景图片
JLabel imgLabel = new JLabel(img);//将背景图放在标签里。
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的 LayeredPane面板里。
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置
Container cp=frame.getContentPane();
cp.setLayout(null); //这里选择绝对布局管理器,对于边界布局管理器,放入控件后,无法显示背景图片;因为将整个面板都填充满了;
((JPanel)cp).setOpaque(false); //这样就能显示出背景图片出来了。
剩下的就是在面板中添加相关的控件,添加语句可以用:
(1)frame.getContentPane().add(panel); (2)cp.add(panel)
效果一样;
另一种方法则是直接为面板设置背景图片,源代码如下:
contentPane = new JPanel(){
private static final long serialVersionUID=-1588458291133087637L;
public void paint(Graphics g){
ImageIcon icon=new ImageIcon("src/images/5.jpg");
Image image=icon.getImage();
g.drawImage(image, 0, 0, null);
}
};
但在实验中发现,显示效果不如前一种方法,...... -
2016-07-10 21:44 符耀精 客户经理
//示例代码,下面的注释有说明背景图片
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Fre {
static JFrame frame = new JFrame();
public static void main(String[] args) {
// 窗体大小
frame.setSize(200, 200);
// 显示窗体
frame.setVisible(true);
ImageIcon img = new ImageIcon("1.jpg");// 这是背景图片
JLabel imgLabel = new JLabel(img);// 将背景图放在标签里。
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));// 注意这里是关键,将背景标签添加到jfram的
// LayeredPane面板里。
imgLabel.setBounds(0, 0, frame.getWidth(), fr碃姬百肯知厩版询保墨ame.getHeight());// 设置背景标签的位置
//imgLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());// 设置背景标签的位置
Container cp = frame.getContentPane();
cp.setLayout(null); // 这里选择绝对布局管理器,对于边界布局管理器,放入控件后,无法显示背景图片;因为将整个面板都填充满了;
((JPanel) cp).setOpaque(false); // 这样就能显示出背景图片出来了
}
}
-
2016-07-10 21:41 龚家贱 客户经理
java swing中设置组件透明度的方法如下:
package src;import java.awt.*;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JPanel;public class MyPanel extends JPanel{ private Image image = null; public MyPanel(Image image) { this.image弧骸岗缴瞢剂哥烯工楼 = image; } //固定背景图片,允许这个JPanel可以在图片上添加其他组件 protected void paintComponent(Graphics g) { g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this); } }测试JFramepackage src;import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Test extends JFrame{JPanel jpanel;JLabel jlabel;JButton jbutton;Image image=new ImageIcon("image/a.jpg").getImage();ImageIcon labIma=new ImageIcon("image/a.jpg");Test(){ this.setIconImage(image); this.setTitle("hello"); init(); this.add(jpanel);}public void init(){//本方法里面有三种显示图片的方法,两个实现了在图片上添加按钮的功能 /*第一种方法 通过JLabel简单的设置图片 jpanel=new JPanel(); jlabel=new JLabel(); jlabel.setIcon(labIma); jpanel.add(jlabel); *//*第二种方法 这是实现在JLabel添加图片同时在上面添加按钮功能,注意它里面的jpanel不用显示的添加到JFrame中,因此上面构造函数中的this.add(jpanel)要注释掉jpanel = (JPanel) this.getContentPane(); //从JFrame 里面创建一个JPanel jpanel.setOpaque(false); //JPanel 透明模式 jlabel = new JLabel(labIma); //创建个带背景图片的JLabel this.getLayeredPane().add...... -
2016-07-10 21:35 辛培剐 客户经理
在java swing中需要为容器添加自定义图片或者背景图片。提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel,代码如下:
1、JPanel(源代码)
package oo; import java.awt.Graphics; import java.awt.Image; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; public class Drawing { JFrame jframe = new JFrame(); public static JPanel GImage = null; public Drawing() { initFrame(); } // 初始化窗口 public void initFrame() { // 利用JPanel添加背景图片 GImage = new JPanel() { protected void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("image\\benbenla.jpg"); Image img = icon.getImage(); g.drawImage(img, 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); jframe.setSize(icon.getIconWidth(), icon.getIconHeight()); } }; jframe.setTitle("测试背景图片"); jframe.add(GImage); jframe.pack(); jframe.setVisible(true); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new Drawing(); } }2、JLabel源代码
package swing.draw; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; /** 利用JLabel来构建图片 */ public class Drawing2 { JLabel jlpic = new JLabel(); ...... -
2016-07-10 21:32 边博洋 客户经理
教你如何设置背景图片
xml文件设置背景图片中:
任意一个控件,button imageView 或layout,在其的xml属性设置中,添加
[java] view plaincopy
android:background="@drawable/bg"
即可实现设置其背景图片为bg.
其中bg.bnp图片存放在drawable目录下。
drawable目录下存放大小图标共用的图片。drawable-hdpi中存放240 WVGA800 的模拟器或板子用的图片。drawable-mdpi存放对应的小图片
[java] view plaincopy
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic"/>
同样,用src属性,也可设置imageView的图片为pic.png
java代码中设置或更改一个控件的背景图片:
[java] view plaincopy
Resources resources = getContext().getResources();
Drawable btnDrawable = resources.get单龚厕夹丿蝗搽伟敞连Drawable(R.drawable.layout_bg);
layout.setBackgroundDrawable(btnDrawable);
程序中,动态修改layout的背景图片,用setBackgroundDrawable()函数实现。设置其背景图片为 layout_bg.png
修改imageView1的背景图片为imageView2的背景图片:
imageView2.getDrawable()可获得图片2的背景。值为Drawable类型
imageView1.setImageDrawable(drawable); 设置imageView1的背景图片
即:
[java] view plaincopy
imageView1.setImageDrawable(imageView2.getDrawable());
热心网友 -
2016-07-10 21:29 章要在 客户经理
我也在郁闷这个问题,我用的是MouseListener接口,但是我不知道怎骸涪汾皇莴郝风酮袱捆么注册监听,图片注册监听应该怎么弄啊?
对了,你那个应该可以将你的图片放入JButton然后用JButton注册监听,也是用MouseListener接口
没有满意答案?看看这些问答能否帮助您?
相关百科精选
已有 86485 位专家入驻汇财吧问答
已经帮助 1173961 人解决了问题