精华内容
下载资源
问答
  • java怎么给窗体或者面板设置背景图片

    万次阅读 多人点赞 2018-03-09 22:34:10
    JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的...
    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); //用指定的图片构造标签对象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);//绘制图片 
       } 
       }

    展开全文
  • 主要为大家详细介绍了java创建以任意图片为背景的窗口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java怎样在面板中添加背景图片

    万次阅读 2017-05-14 13:11:15
    import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;

    首先,导入相关的包:

    import java.awt.BorderLayout;

    import java.awt.Container;

    import javax.swing.ImageIcon;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    也可以用:

    import java.awt.*;

    import javax.swing.*;

    接着,创建一个Java窗体对象,并设置为可见

    eg:  JFram frame = JFrame();//创建一个窗体
             frame.setVisible(true);//设置窗体可见,默认不可见

    最后编写如下代码:

      /*
       * 以下7行是给窗体添加背景图片
       */
      ImageIcon img = new ImageIcon("E:\\1"+ ".gif");//这是背景图片
      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(new BorderLayout());
      ((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。

    赶快编写一个试试吧!!!

    完整代码如下:

    package 第八章;

    import java.awt.BorderLayout;

    import java.awt.Container;

    import javax.swing.ImageIcon;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    public class MyFirstFrame extends JFrame {

     /**  

    * 作者:听山谷的~  

    * 版本1.0  

    */  private static final long serialVersionUID = 1L;  

     public static void main(String[] args) {  

     // TODO Auto-generated method stub   

    MyFirstFrame frame=new MyFirstFrame();  

     frame.setVisible(true);//设置窗体可见,默认不可见   

    /*     

    * 以下7行是给窗体添加背景图片     

    */    

    ImageIcon img = new ImageIcon("E:\\1.gif");//这是背景图片    

    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(new BorderLayout());    

    ((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。  

    }  

    public MyFirstFrame(){   

    super();             //继承父类构造方法   setTitle("利用JFrame类创建的窗体");   

    setBounds(100,100,315,320);     //设置窗体显示位置及大小   

    System.out.println(getForeground());  

     getContentPane().setLayout(null);//设置为不采用任何布局管理器   

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     }

    }

    展开全文
  • 给窗口绘制背景背景图片需要用到"java"中的Canvas类。 1.需要新建一个类,并继承Canvas类。 2.重写Canvas类中的paint(Graphics g)方法。 3.调用Graphics画笔的drawImage()方法开始绘制背景图片。 4.把你新建的类实例...


    前言

    相信大家在GUI编程过程中,也就是开发窗口程序过程中,比如游戏界面等,难免会需要给窗口添加背景图片,接下来我将给大家详细讲解如何给窗口设置背景图片。


    一、知识点介绍

    给窗口绘制背景背景图片需要用到"java"中的Canvas类。
    1.需要新建一个类,并继承Canvas类。
    2.重写Canvas类中的paint(Graphics g)方法。
    3.调用Graphics画笔的drawImage()方法开始绘制背景图片。
    4.把你新建的类实例化一个对象,把它添加到窗口中即可。win.add()方法。
    5.drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) 方法介绍:
    参数x,y是指距离窗口左上角的距离,width和height是指要把图片绘制的宽和高,ImageObserver observer设置为null即可。

    二、代码实现

    代码如下(示例):

    import javax.imageio.ImageIO;
    import javax.swing.*;
    import java.awt.*;
    import java.io.File;
    import java.io.IOException;
    
    public class csdn {
        public static void main(String[] args) {
            new csdn();
        }
        //使用JFrame类初始化一个窗口对象win
        JFrame win = new JFrame("绘制背景图片");
        //设置此类的构造方法
        csdn() {
            //初始化一个MyCanvas对象,用于绘制背景图片
            //因为ImageIo.read有异常,所以用try-catch环绕
            try {
                //这里用ImageIO流来读取图片文件
                MyCanvas myCanvas = new MyCanvas(ImageIO.read(new File("G:\\java-ex\\GUI\\images\\library.jpg")));
                //把MyCanvas对象添加到窗口win中即可
                win.add(myCanvas);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            //设置窗口的基本属性
            win.setSize(512,371);//设置窗口尺寸
            win.setVisible(true);//设置窗口可见
            win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗口关闭方式
    
        }
    
        //新建一个MyCanvas类,并继承Canvas类
        class MyCanvas extends Canvas {
            Image image;
            //设置此类的构造方法,传递过来一个image文件
            MyCanvas(Image image) {
                this.image = image;
            }
            //重写paint方法
            @Override
            public void paint(Graphics g) {
                super.paint(g);
                //调用Graphics画笔的drawImage()方法开始画图。
                g.drawImage(image,0,0,win.getWidth(),win.getHeight(),null);
            }
        }
    
    }
    
    

    代码运行结果:在这里插入图片描述

    总结

    上述代码里的注释文字已经讲的比较清楚了,我再对细节做一些补充
    1.在向myCanvas中传递图片文件时,我用的是ImageIO.read()方法

          //因为ImageIo.read有异常,所以用try-catch环绕
            try {
                //这里用ImageIO流来读取图片文件
                MyCanvas myCanvas = new MyCanvas(ImageIO.read(new File("G:\\java-ex\\GUI\\images\\library.jpg")));
                //把MyCanvas对象添加到窗口win中即可
                win.add(myCanvas);
            } catch (IOException e) {
                e.printStackTrace();
            }
    

    在此处也可以用另一种方法得到一个image文件(Toolkit类),代码如下,重点在于MyCanvas类中的改动。

    import javax.imageio.ImageIO;
    import javax.swing.*;
    import java.awt.*;
    import java.io.File;
    import java.io.IOException;
    
    public class csdn1{
        public static void main(String[] args) {
            new csdn();
        }
        //使用JFrame类初始化一个窗口对象win
        JFrame win = new JFrame("绘制背景图片");
        //设置此类的构造方法
        csdn1() {
            //初始化一个MyCanvas对象,用于绘制背景图片
            MyCanvas myCanvas = new MyCanvas();
            //把myCanvas添加到窗口win中即可
            win.add(myCanvas);
            //设置窗口的基本属性
            win.setSize(512,371);//设置窗口尺寸
            win.setVisible(true);//设置窗口可见
            win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗口关闭方式
    
        }
    
        //新建一个MyCanvas类,并继承Canvas类
        class MyCanvas extends Canvas {
            Toolkit toolkit = getToolkit();
            Image image;
            //重写paint方法
            @Override
            public void paint(Graphics g) {
                image = toolkit.getImage("G:\\java-ex\\GUI\\images\\library.jpg");
                super.paint(g);
                //调用Graphics画笔的drawImage()方法开始画图。
                g.drawImage(image,0,0,win.getWidth(),win.getHeight(),null);
            }
        }
    
    }
    
    
    

    大家要是觉得不错的话,记得给我点个赞加个关注呦,后续我会继续发布一些帮助新手入门java的文章,哈哈。

    展开全文
  • Java界面:java设置背景图片

    万次阅读 多人点赞 2019-05-13 17:43:11
    Java初学者,制作的第一个又背景图片的页面,虽然有点丑。。 1.在JAVA文件中创建一个Folder(文件夹),把准备好的图片复制粘贴进去,在出现如下图片时点击ok,最好把图片名字修改的简单一点。 2.窗口布局为分层...

    Java初学者,制作的第一个又背景图片的页面,虽然有点丑。。

    1.在JAVA文件中创建一个Folder(文件夹),把准备好的图片复制粘贴进去,在出现如下图片时点击ok,最好把图片名字修改的简单一点。

    2.窗口布局为分层网格。

    3.创建一个标签(JLabel),把图片放入标签中。

    4.设置按钮等组件透明。

    5.把标签放入分层网格的最底层。

     

     

     

     

    package Quck_1;
    
    
    
    import java.awt.FlowLayout;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JLayeredPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class UIinterface extends JFrame{
    	JLayeredPane pane = new JLayeredPane();  // 分层网格
    	JLabel label;
    	JPanel panel1 = new JPanel();
    	JTextField field1 = new JTextField();
    //	JTextField field2 = new JTextField();
    	JButton Land = new JButton("登陆");
    //	JButton register = new JButton("注册");
    	ImageIcon image;
    	public UIinterface() {
    		image = new ImageIcon("jpp/蜘蛛侠.jpg");
                     //设置组件透明
                    Land.setOpaque(false);
           
    	
    		label = new JLabel(image);		//把背景图片添加到标签里
    
    		panel1.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());   //把标签设置为和图片等高等宽
    
    		panel1 = (JPanel)this.getContentPane(); 	//把我的面板设置为内容面板
    		
    		panel1.add(label);
    		
    		Land.setBounds(100, 100, 100, 50);
    
    		pane.add(panel1,JLayeredPane.DEFAULT_LAYER);  
    		pane.add(Land, JLayeredPane.MODAL_LAYER);
    		
                    this.setTitle("QQ");
    		this.setBounds(100,100,image.getIconWidth(), image.getIconHeight());
    		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    		this.setLayeredPane(pane);
    		this.setVisible(true);
    	}
    	
    }

     

    图片演示如下

    展开全文
  • Java数组倒置 简单 Java图片水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
  • JFrame frame=new JFrame("添加了背景面板"); Exam9_4 panel = new Exam9_4(); frame.add(panel);//将面板添加到JFrame上 frame.setVisible(true); frame.setBounds(300, 300, 400, 500); frame....
  • JavaSwing添加背景图片

    千次阅读 2020-01-19 18:08:24
    JavaSwing添加背景图片 代码整理 将标签设置为图片标签实现 /** * @author how * JavaSwing测试插入背景图片 * 2020/1/19 */ import java.awt.*; import javax.swing.*; public class Background extends ...
  • JavaGUI——背景图片设置

    万次阅读 多人点赞 2018-06-30 14:46:02
    设置思路:创建一个ImageIcon图片对象-&...把label添加到LayeredPane的最底层(现在看不懂没关系,这是设置背景图片的大概流程,帮助理解的,自己按照流程练习三遍就会了)案例展示:案例代码:import java...
  • JAVA中如何在Jframe面板插入背景图片

    万次阅读 多人点赞 2014-05-06 16:46:18
    ======================... 第三步,在后面的语句中加上一句,把背景面板变成透明的,  这样就成功了!!!截个成果See see, 备注一下,这个皮卡丘头像是我用PS弄上去的,最近木有时间弄头像啦~  
  • Java 添加背景图片

    千次阅读 2019-02-14 15:14:28
    Java 添加背景图片
  • JAVA之设置背景图片的几种方法

    千次阅读 2017-07-19 22:08:24
    第一种方法,通过JLabel来装载图片。...创建一个ImageIcon对象,来获取背景图片。 ImageIcon img = new ImageIcon("image/img1.png");  创建一个JLabel对象,将图片img载入到JLabe
  • Java中JFrame窗口添加背景图片

    千次阅读 多人点赞 2021-01-16 09:32:50
    把JFrame想象成一个桌子,桌子上面有个木板,组件和面板就是木板上的物品,我们就是把桌子上的木板换为玻璃板,然后把背景图放在玻璃板下面,把物品放在玻璃板上面; 哔哩哔哩有此视频教程: 示例代码: import java...
  • [JAVA]①重绘JPanel面板,设置窗体背景图片

    千次阅读 多人点赞 2017-09-06 14:23:52
    由于在网上查询的方法众多,而且方法有的地方复杂化,其实不用特别复杂编写代码,只要关键点的地方写对了,就可以运行。 此写法本人整理了网上思路编写,简单明了... * 自定义背景图片,重绘JPanel面板的paintComponent
  • java给窗体或面板设置背景图片

    千次阅读 2014-01-04 22:50:42
    JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的...
  • java 图形界面中,怎么把一张图片设为窗口的背景,然后可以继续在上面添加其他组件,就是说后面添加的组件不会把那个背景图片给覆盖了?有谁能指教一二,谢谢了。
  • 本人最新的作业,可能还有点儿不完善,仅供刚刚接触java的初学者参考! sql2005 eclipse6.0
  • 这个跟我上一篇的博文是相同写法的,只是多了个获取宽度和高度的变量值。 ... import java.awt.BorderLayout; import java.awt.Graphics; import javax.swing.*; /** * * 设置背景图片随窗体变
  • JScrollPane可以设置背景...大概就是,原本只调用JScrollPane面板,所以显示如下只有一个JScrollPane面板:感觉干巴巴的想要个背景。于是在网上搜索办法可不可以给JScrollPane面板设置背景。 部分代码: final J...
  • import java.awt.*;import javax.swing.*;public class backpic extends JPanel { String strpic = new String();//继承这个类的时候 传一个图片位置的字符串 public backpic(String strpic) { this.strpic = ...
  • Java添加背景图片,不遮盖其他容器

    万次阅读 多人点赞 2018-10-24 20:36:01
    写了一个图书管理系统,希望借此熟悉Java的界面和数据库操作,在制作界面时想要添加一个带背景的容器,最开始在网上查的都是在JFLabel里添加图片,添加上了完全达不到想要的效果。  后来学习到将图片重绘到一个...
  • PAGE / NUMPAGES Java中设置窗体背景图像 首先在java中没有直接可用的方法设置java窗体的背景图像但是有两种方法可以间接完成设置窗体的背景颜色的设置一种是利用标签按钮另一种是面板来设置 首先介绍一下利用标签...
  • JAVA GUI之如何设置图片为窗口背景

    万次阅读 2019-06-28 22:08:49
    比如说我就想把窗口背景设置为自己想要的图片,以下是样,不过我这张图片是特地调整了大小的,别的图片可能会出现只显示一角的情况,最好拿与窗口大小匹配的图片效果较好。 这里我觉得太过单调,顺便改了下窗口的...
  • java 插入背景图片的三种方法

    万次阅读 2017-06-25 21:06:25
    import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;...//使用窗体的分层面板 public class backimage1 extends JFrame{ ImageIcon ico; JLabel labe
  • Java swing - 在JFrame中添加背景图片

    千次阅读 多人点赞 2017-11-28 21:09:18
    之前写了一个窗口程序,写完过后想添加一些功能,比如在窗体添加背景图片。 我把显示背景图片的代码放在了一个方法里面,因为我设计了一个可以更换背景图片的监听事件,将这个代码放在方法里面便于二次调用。 JLabel...
  • java更换窗口背景颜色

    2012-11-16 20:59:44
    利用java代码更换创口背景颜色 class SimpleChangePanel extends JPanel implements ActionListener { private JButton yellowButton; public SimpleChangePanel() { yellowButton = new JButton("Yellow"); ...
  • 最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。有了这些常识后我们就可以随意设计背景了。在这里笔者提供两种方法为一个frame设置一张背景图片方法一: 原理:...
  • 文章目录java创建带有背景图片的窗体将背景图片添加到面板再添加到窗体可设置背景图片的画板测试效果背景图片添加到窗体效果背景图片添加到面板再添加到窗体 将背景图片添加到面板上 可设置背景图片的画板 ...
  • 让我添加更多的功能,譬如让背景图片随窗口大小的变化而变化,以及如何在原程序中设置控制游戏开始结束的按钮,和 游戏结束后的记数和等级,怎样重新开始等(本来想发点C币的,但是全换成下载积分了,所以麻烦各位...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,465
精华内容 5,386
关键字:

java面板加背景图

java 订阅