<tfoot id='54jy3e3r'></tfoot>
  • <small id='f8svkc3t'></small><noframes id='qd322ltv'>

  • 您的位置:荆州电脑信息网 > 设置问题 > java中如何设置背景图片

    java中如何设置背景图片

    作者:电脑信息网日期:

    返回目录:设置问题


    没有这样的方法
    但是可以自己做一个这样的JavaBean
    这是我做的一个继承JPanel可以实现设置背e68a84e8a2ad7a64339景的JavaBean
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Insets;
    import java.awt.LayoutManager;

    import javax.swing.JPanel;

    public class PanelBean extends JPanel {

    private static final long serialVersionUID = 1L;
    private Image image;

    public PanelBean(LayoutManager layout, boolean isDoubleBuffered) {
    super(layout, isDoubleBuffered);
    }

    public PanelBean(LayoutManager layout) {
    this(layout, true);
    }

    public PanelBean(boolean isDoubleBuffered) {
    this(new FlowLayout(), isDoubleBuffered);
    }

    public PanelBean() {
    this(true);
    }

    public Image getImage() {
    return image;
    }

    public void setImage(Image image) {
    this.image = image;

    }

    public void paintImage(Image image) {
    Graphics g = this.getGraphics();
    Insets insets = this.getInsets();
    if (insets == null)
    g.drawImage(image, 0, 0, this);
    else
    g.drawImage(image, insets.left, insets.top, this);
    }

    public void paintImage() {
    this.paintImage(this.image);
    }

    }

    1、修改背景图片和动态语言类【jsp】并无关联。


    2、背景图片是css属性background来设置的。具体使用:


    background:url(images/xx.jpg) no-repeat center center;


    url()是背景存放位置。


    no-repeat不平铺,就是图片多大就展示多大,还有其他的平铺方式。repeat-x:横向平铺,repeat-y纵向平铺,repeat:横向纵向平铺。


    center center是背景显示在容器里头的位置,当然也可以使用10px 10px像素来表示从什么地方开始显示。


    //一个小例子
    //注意:
    //当前目录下要有一个p.jpg文件
    //压缩这个文件使它的大小尽量小,最好只有几十KB
    //否则无法显示背景图片

    import javax.swing.*;
    import java.awt.*;

    public class Demo extends JFrame {
    public static void main(String[] args) {
    new Demo();
    }
    public Demo() {

    //加载图片
    pic=Toolkit.getDefaultToolkit().getImage("p.jpg");
    MediaTracker t=new MediaTracker(this);
    t.addImage(pic,1);
    try
    {
    t.waitForID(1);
    }
    catch(Exception e)
    {

    }

    setSize(400,400);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    }
    //覆盖(重写)paint方法以在窗口中添加一张e79fa5e98193e78988e69d83361图片
    public void paint(Graphics g) {
    g.drawImage(pic,0,0,null);
    }
    Image pic;
    }

    1 利用标签组件来设置
    标签本来是一种最简单的组件,为什么可以将它e799bee5baa6e58685e5aeb9334设置成为一个窗体的背景呢?首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的第二层是JlayerPane上,再把内容面板ContentPane设置为透明,则第二层JlayerPane上放置的图片即成为内容面板的背景了。具体代码如下:
    JPanelpnlMain=new JPanel(); //创建面板pnlMain。
    getContentPane().add(pnlMain); //将pnlMain设置为主面板。
    Iconi=new ImageIcon("背景.jpg"); /*用源图片“背景.jpg”构造一个ImageIcon对象i,需要注意如果图片的路径使用的是相对路径,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则图片的路径必须用绝对路径。*/
    JLabellblLogo = new JLabel(i); //用指定的图片构造标签对象lb
    this.getLayeredPane().add(lb, new Integer(Integer.MIN_VALUE));
    //把标签放在第二层JlayerPane上。
    lb.setBounds(0, 0,ii.getIconWidth(),i.getIconHeight());
    //设置标签的尺寸,即背景图象的大小。
    getConentPane().setOpaque(false); /*把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。*/
    pnlMain.add(lb); //将标签添加到主面板pnlMain中。
    用标签组件JLabel来设置窗体背景,其扩展性上比较差,且在标签上不能放置其他组件,比如:在放置一个JButton,整个布局背景图就错乱。导致这种现象是因为Java加载组件是有顺序的,作为背景的JLabel的代码一定要放在全部组件代码的最后,这样JLabel的背景图片才不会被其他组件遮住,从而使整个布局背景错乱。所以采用这种方式来设置窗体背景有很大的局限性。因此最好是采用以下方式来设置窗体背景。
    2 通过JPanel面板来设置窗体背景
    JPanel面板是Java中的容器之一。而Java中的容器是没有背景图片的属性的,它们只有背景颜色,如果需要在JPanel面板上设置窗体背景,就需要重写paintComponent(Graphics g)方法,即把所要设置的背景图片画上作为JPanel面板的背景。具体实现如下:
    首先定义一个JPanel的子类BjPanel,由于JPanel的构造方法不能添加图像,因此在创建此子类的时候先用getImage载入一幅背景图片,在重写paintComponent(Graphics g)方法时,利用drawImage方法将其逐渐绘制到屏幕上,并将该面板添加到框架中,最后将该面板设置为透明。其代码如下:
    import java.awt.*;
    import javax.swing.*;
    public class bkground
    {
    public static void main(String args[])
    {
    BjFramef=newBjFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }
    class BjFrame extends JFrame
    {
    public BjFrame()
    {
    setSize(WTH,HHT);
    BjPanel pl=new BjPanel();
    Container contentPane=getContentPane();
    contentPane.add(pl);
    pl. setOpaque(true);
    }
    public static final int WTH=300;
    public static final int HHT=200;
    }
    class BjPanel extends JPanel
    {
    Image im;
    public BjPanel()
    {
    im=Toolkit.getDefaultToolkit().getImage("背景.jpg");//需要注意的是如果用相对路径载入图片,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则必须用绝对路径。
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    int imWidth=image.getWidth(this);
    Int imHeight=image.getHeight(this); //定义图片的宽度、高度
    int FWidth=getWidth();
    int FHeight=getHeight();//定义窗口的宽度、高度
    int x=(FWidth-imWidth)/2;
    int y=(FHeight-imHeight)/2;//计算图片的坐标,使图片显示在窗口正中间
    g.drawImage(image,x,y,null);//绘制图片
    }
    }
    <tfoot id='nvirf3wa'></tfoot>

      <small id='i4ua9s8r'></small><noframes id='mf8cvost'>

        <tbody id='sb3snato'></tbody>

      相关阅读

      • java中如何设置背景图片

      • 电脑信息网设置问题
      • 没有这样的方法 但是可以自己做一个这样的JavaBean这是我做的一个继承JPanel可以实现设置背e68a84e8a2ad7a64339景的JavaBeanimport java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Ima
      关键词不能为空

      标签导航

      qq上的个性标签 在哪设置 怎么设置 最新QQ版本怎么设置个性标签 QQ上怎样设置个性标签? 手机QQ最新版本怎么设置个性标签??!! win7ie图标不见了怎么恢复不要带快捷方式的 win7系统怎么恢复IE浏览器图标 我不小心删了找不到? win7ie图标删除了怎么恢复 WIN7系统桌面上的 IE图标没有了,怎么弄回来? win10电脑开机直接弹出开始菜单不显示桌面要怎么办? 为什么WIN10开机黑屏出不来桌面? WIN10开机黑屏出不来桌面 Win10开机后为什么黑屏不显示桌面 jsp背景图片如何设置? Java怎么添加背景图片? java怎么给窗体或者面板设置背景图片? java 中如何设置背景图片 win7系统怎么打开java的控制面板 win7 java控制面板在哪 怎么删除win7控制面板里的java win7 控制面板里面的java 没有了 win10玩游戏花屏怎么办 win10玩游戏出现系列问题的解... win10游戏花屏怎么办 为什么win10纸牌游戏花屏 为什么我的街机游戏会出现花屏的现象,请高人帮我解决一下 vivo x7通讯录权限设置在哪里? vivo x7 的软件权限管理在哪 vivox7通讯录权限设置在哪里 vivox7手机应用管理权限在哪里 怎么电脑每次开机都会先进入BIOS界面? 电脑一开机就进入bios,一直循环的,就是进入不了系统,怎么... 我的笔记本装的是win7系统,一开机就直接进入bios界面了... 电脑开机自动进入BIOS 无法正常进入系统 WIN10开始菜单的动态磁贴没了怎么办 WIN10的开始菜单变成这样了,怎么变回原来的样子 Win10开始菜单所有应用什么都没了空白怎么办 怎么取消win10开始菜单里的生活动态 html背景图片设置 html如何设置背景图片 HTML怎么设置图片为网页背景? htmL中怎么插入背景图片如何设置背景图片大小 win7 F8无反应 无法进入高级启动选项 win7开不开机按F8的高级选项也没有修复要怎样才能恢复出厂... win7为什么开机按del后是按F8进入高级选项和正常进入... 我的WIN7系统开机F8 没有修复计算机 选项.. win10系统安装 需要磁盘是什么格式 windows10硬盘用什么格式 装win10分区时选择什么格式 win10和需要什么硬盘格式 在ppt中怎么让一个图片变成背景 在PPT里怎么设置别的图片为背景 如何将图片设为ppt的背景图 PPT中如何将图片设置为背景? 我的macbook pro装了双系统,可是boot camp...

      电脑蓝屏,win7,win10相关问题_荆州电脑信息网