• <small id='kbay4zgj'></small><noframes id='un5q2nl9'>

  • <tfoot id='21nnuhg9'></tfoot>
    您的位置:荆州电脑信息网 > 设置问题 > java怎么给窗体或者面板设置背景图片?

    java怎么给窗体或者面板设置背景图片?

    作者:电脑信息网日期:

    返回目录:设置问题




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

    public class AddImage {
    public static void main(String[] args){
    new AddImageFrame();
    }
    }
    class AddImageFrame extends JFrame{
    public AddImageFrame(){
    super("添加背景图片");
    setBounds(200,200,500,400);
    setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    setVisible(true);
    AddImagePanel aip= new AddImagePanel();
    add(aip);
    }
    }

    class AddImagePanel extends JPanel{
    private Image backgroundimage=null;

    public void paintComponent(Graphics g){
    super.paintComponent(g);
    try{
    backgroundimage=ImageIO.read(new File("E:/picture/http_imgload.jpg")).getScaledInstance(getWidth(),getHeight(),Image.SCALE_FAST);
    }catch(IOException e){
    e.printStackTrace();
    }
    g.drawImage(backgroundimage,0,0,null);
    image.flush();
    }
    }
    这是设置背景图片的简单代码 你要的主要是 backgroundimage=ImageIO.read(new File("E:/picture/http_imgload.jpg")).getScaledInstance(getWidth(),getHeight(),Image.SCALE_FAST);
    javax.image包里面有一个类 ImageIO有一个方法read(File string) 读取一个图片文件返回image对象,File会抛出异常,awt包里面的Image有个方法 getScaledstance(width,height,hints) 是缩放图片到多大,intnts是缩放的算法,取Image字段常量,有很多钟算法,你可以取一种,这个程序里图片的大小取的是容纳它的panel面板的大小,会随着面板的变化充满整个面板,这个变化过程要调用面板的 paintComponent()方法来监视,Graphics 中的drawImage(x,y,observer)方法来实现,observer是安全管理器,可以为null,最后e79fa5e98193e78988e69d83339绘画完后刷新就可以了,希望对你有帮助,俺也是初学者,交流为上 ,不过我个人还是认为下面的方法比较好
    public void setBak() { //设置窗口背景
    ((JPanel) this.getContentPane()).setOpaque(false);
    ImageIcon img = new ImageIcon(getClass().getResource("picture/http_imgload.jpg"));
    JLabel background = new JLabel(img);
    this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
    background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
    }构造器调用这个方法图片不会缩放,上面的例子 不用缩放的方法也可以做到,就看怎么看了

    background = new ImageIcon("images/backImage.png");

    backImage = new JLabel(background);

    backImage.setBounds(0, 0, background.getIconWidth(),

    background.getIconHeight());

    backPanel = (JPanel) this.getContentPane();

    backPanel.setOpaque(false);

    this.getLayeredPane().setLayout(null);

    this.getLayeredPane().add(backImage, new Integer(Integer.MIN_VALUE));

    backPanel.setLayout(new BorderLayout());

    这个是我程序里面复制出来的,效果就下面图一样。



    1 利用标签组件来设置
      标签本来是一种最简单的组件,为什么可以将它设置成为一个窗体的背景呢?首先还是要了解框架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); //用指定的e69da5e6ba907a64339图片构造标签对象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='gco3uj9p'></tfoot>
    • <small id='dtact9ay'></small><noframes id='yjtu05c4'>

        <tbody id='gxnd6ldr'></tbody>

      相关阅读

      • java中如何设置背景图片

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

      标签导航

      生之路快捷键如何设置? 纬地道路桌面图标不是快捷方式 确认命令的快捷键是什么,如何设置 怎么更改纬地图框中的字? Win10不能安装新字体总是安装失败该怎么办 win10不能安装新字体怎么办 win10安装新字体总是失败... Win10不能安装字体或失败怎么办 Win10安装字体失败怎么办 ubuntu下修复win7启动 如何在ubuntu下修复win7引导菜单 怎样修复grub开机引导以及在Ubuntu中添加win7开机... win7下,安装了 ubuntu系统 但是丢失了启动引导项,... java怎么给窗体或者面板设置背景图片? java怎么给窗体或者面板设置背景图片 Java窗体如何设置背景图片?急求!! java中怎样设置窗体背景图片,可以附上代码吗? win10怎么搭建ftp服务器配置 win10 ftp搭建 主机名怎么使用 Windows10搭建FTP服务器时,启用或关闭Window... 在新版win10系统上ftp服务器如何搭建,搭建至少需要几台... ALT+ENTER这个组合键是做什么的? 快捷键Alt+Tab和Alt+Esc有什么区别? 快捷键Alt+Enter在办公软件中有什么作用 打开桌面属性和我的电脑属性的快捷键,分别是什么? Win10系统怎么设置图片密码 Win10怎么设置图形密码 Win10设置图片密码方法介绍 Win10怎么设置 win10 64位,玩游戏一切换到全屏就黑屏死机但有声音,无... 关于Win10游戏中窗口化黑屏怎么解决 win10笔记本电脑玩游戏,全屏黑屏有声音 win10打开游戏进不去黑屏弹框有声音怎么解决 windows7系统镜像包到哪里下载? Win7电脑系统安装包应该在哪里下载比较好? win7自动更新下载的文件在哪里 win7系统的iso镜像文件在那下载,文件有多大? 怎么给微信,QQ上锁 苹果手机怎么给微信上锁? 怎么可以给微信加锁吗 微信怎么锁定 我是win10的系统 为什么wifi经常会自动断开 然后就连... win10连隐藏WiFi一直显示无法连接到这个网络怎么解决? win10经常wifi断网又自动重连,怎么办 我的win10系统无线网络连接一段时间后就会自动断掉,如图,... win10怎么隐藏IE浏览器图标 windows7 旗舰版怎么隐藏系统自带的浏览器图标 WIN7系统桌面上的 IE图标没有了,怎么弄回来? win7怎么把桌面的ie隐藏 如何设置HTML图片的背景颜色为透明的 如何设置html背景颜色透明度 HTML如何给背景颜色设置透明度? Html表格背景颜色透明度怎么调,只用HTML和css win10系统,刚才在玩dnf开启全屏模式但是旁边有两个黑边... win10玩dnf不能全屏,有黑边,我显卡是A卡,怎么设置成... win10玩DNF全屏两边有黑边,求助

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