精华内容
下载资源
问答
  • JFrame设置背景图片

    千次阅读 2017-05-15 12:28:01
    package backgroundImage; import javax.swing.*;...public class Test extends JFrame { static private final Dimension size = new Dimension(700, 600); public Dimension getPreferredSize
    package backgroundImage;
    import javax.swing.*;
    import java.awt.*;
    public class Test extends JFrame {
    	static private final Dimension size = new Dimension(700, 600);
    	public Dimension getPreferredSize() {
    		return size;
    	}
    	public Dimension getMaximumSize() {
    		return size;
    	}
    	public Dimension getMinimumSize() {
    		return size;
    	}
    	public Dimension getSize() {
    		return size;
    	}
    	public Test() throws HeadlessException {
    		this.setTitle("测试背景图片");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    		Container container = getContentPane(); //获取父类容器面板
    		container.add(canvas);   //将图片画布添加到面板中
    		pack();
    		setVisible(true);   //显示
    	}
    	//一个图片
    	private static final Image image = Toolkit.getDefaultToolkit().getImage("img/1.jpg");
    	private static final JComponent canvas = new JComponent() {
    		protected void paintComponent(Graphics g) {
    			super.paintComponent(g);
    			Graphics gg = g.create(); //创建画笔
    			gg.drawImage(image, 0, 0, getWidth(), getHeight(), this); //画图
    			gg.dispose(); 
    		}
    	};
    	public static void main(String[] args) {
    		new Test();
    	}
    }


    运行效果


    展开全文
  • Java - JFrame 设置背景图片

    万次阅读 多人点赞 2016-11-10 13:26:39
    设置JFrame背景图片由两种方式: 1.Jpanel类的paintComponent(Graphics g)重新绘制背景图片 2.利用LayeredPane为Swing控件增加了深度,允许组建在需要的时候互相重叠 由低到高的层次是:Default,Palette,Modal,PopUp...
    设置JFrame的背景图片由两种方式:
    1.Jpanel类的paintComponent(Graphics g)重新绘制背景图片
    2.利用LayeredPane为Swing控件增加了深度,允许组建在需要的时候互相重叠
        由低到高的层次是:Default,Palette,Modal,PopUp,Drag

    运行展示:稍后上传

    API查询:
    Jpanel:http://docs.oracle.com/javase/7/docs/api/javax/swing/JPanel.html
    Graphics :http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html
    LayeredPane:http://www.apihome.cn/api/java/JLayeredPane.html

    Tips:
    (1)paintComponent(Graphics g)以及paint()的区别:
    super.paintComponent(g)是父类JPanel里的方法,会把整个面板用背景色重画一遍,起到清屏的作用

    awt控件中是在paint方法进行绘制, 所以在awt控件继承时,只要简单的覆盖paint方法就可以了。
    而在swing控件中,paint方法会依次调用paintcomponent, paintborder,
    paintchildren三个方法,后两者一般默认即可,所以swing编程时,如果继承jcomponent或者其子类,要覆盖paintcomponent而不是paint方法

    (2)LayeredPane的说明
    JLayeredPanel 作为Java层次面板是创建多编辑窗口与实现某些特殊显示层次效果的最好方法
    当前已经内置支持JLayeredPanel的组件包括JFrame,JDialog,JDesktopPanel本身就是个JLayeredPanel对象,JLayeredPanel中可以包含多个JComponent组件对象,并且可以相互切换到编辑状态。
    *值得注意的是:
    由于JLayeredPanel没有layoutManager所以必须完成设置setBounds()函数对每个添加到JLayeredPanel的对象,否则会导致无法显示该组件。由于JLayeredPanel没有layoutManager所以必须完成设置setBounds()函数对每个添加到JLayeredPanel的对象,否则会导致无法显示该组件。

    方法1:

    import java.awt.*;  
    import javax.swing.*;  
    
    //方法1:通过在JFrame中添加一个JPanel,背景图片放在JPanel上来实现
    public class Java_JFrame extends JFrame         //默认的事BorderLayout
    {  
        //创建一个容器  
        Container ct;  
        //创建背景面板。  
        BackgroundPanel bgp;         //自定义的背景类 
    
        //创建一个按钮,用来证明我们的确是创建了背景图片,而不是一张图片。  
        JButton jb;  
        public static void main(String[] args)  
        {  
            new Java_JFrame();  
        }  
        public Java_JFrame()  
        {  
            //不采用任何布局方式。  
            ct=this.getContentPane();
            this.setLayout(null);  
    
            //重新绘制背景图片  
            bgp=new BackgroundPanel((new ImageIcon("D:\\Fox DownLoad\\Editplus_CK_XP85\\5.png")).getImage()); //参数是一个Image对象,
            bgp.setBounds(0,0,400,300);  
            ct.add(bgp);  
    
            //创建按钮  
            jb=new JButton("测试按钮");  
            jb.setBounds(60,30,160,30);  
            ct.add(jb);  
    
            this.setSize(400,300);  
            this.setLocation(400,300);  
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            this.setVisible(true);  
        }  
    }  
    class BackgroundPanel extends JPanel  
    {  
        Image im;  
        public BackgroundPanel(Image im)  
        {  
            this.im=im;  
            this.setOpaque(true);                    //设置控件不透明,若是false,那么就是透明
        }  
        //Draw the background again,继承自Jpanle,是Swing控件需要继承实现的方法,而不是AWT中的Paint()
        public void paintComponent(Graphics g)       //绘图类,详情可见博主的Java 下 java-Graphics 
        {  
            super.paintComponents(g);  
            g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);  //绘制指定图像中当前可用的图像。图像的左上角位于该图形上下文坐标空间的 (x, y)。图像中的透明像素不影响该处已存在的像素
    
        }  
    }

    方法2:

    //我们用JLayeredPane,JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。
    //Integer 对象指定容器中每个组件的深度,其中编号较高的组件位于其他组件之上
    //层次依次是:Default,Palette,Modal,PopUp,Drag
    public class Java_JFrame extends JFrame  
    {  
        //创建一个JLayeredPane用于分层的。  
        JLayeredPane layeredPane;  
        //创建一个Panel和一个Label用于存放图片,作为背景。  
        JPanel jp;  
        JLabel jl;  
        ImageIcon image;  
    
        //创建一个按钮用于测试的。  
        JButton jb;  
        public static void main(String[] args)  
        {  
            new Java_JFrame();  
        }  
    
        public Java_JFrame()  
        {  
            layeredPane=new JLayeredPane();  
            image=new ImageIcon("D:\\Fox DownLoad\\Editplus_CK_XP85\\5.png");//随便找一张图就可以看到效果。        
            //创建背景的那些东西  
            jp=new JPanel();  
            jp.setBounds(0,0,image.getIconWidth(),image.getIconHeight());  
    
            jl=new JLabel(image);  
    //      jl.setBounds(0,0,image.getIconWidth(),image.getIconHeight());  
            jp.add(jl);  
    
            //创建一个测试按钮  
            jb=new JButton("测试按钮");  
            jb.setBounds(100,100,100,100);  
    
            //将jp放到最底层。                                    /*层次关系可见方法2下面的注释*/
            layeredPane.add(jp,JLayeredPane.DEFAULT_LAYER);  
            //将jb放到高一层的地方  
            layeredPane.add(jb,JLayeredPane.MODAL_LAYER);  
    
            this.setLayeredPane(layeredPane);  
            this.setSize(image.getIconWidth(),image.getIconHeight());  
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            this.setLocation(image.getIconWidth(),image.getIconHeight());  
            this.setVisible(true);    
        }  
    }

    有什么意见或者疑问可以提出来~

    展开全文
  • Java窗体JFrame设置背景图片

    千次阅读 2020-04-23 20:28:53
    重写JFrame paint g.drawImage(new ImageIcon(“bg.jpg”).getImage(), 0, 0, this); import java.awt.*; import javax.swing.*; public class TestLayeredPane extends JFrame { private ImageIcon ic; pri...
    • 实现方法1:

    重写JFrame paint
    g.drawImage(new ImageIcon(“bg.jpg”).getImage(), 0, 0, this);

    import java.awt.*;
    import javax.swing.*;
    
    public class TestLayeredPane extends JFrame {
    	private ImageIcon ic;
    	private JLabel jl;
    	private JPanel  jp;
    	
    	@Override
    	public void paint(Graphics g) {
    		// TODO 自动生成的方法存根
    		super.paint(g);
    		g.drawImage(new ImageIcon("bg.jpg").getImage(), 0, 0, this);
    		//设置透明色的方法
    		g.setColor(new Color(255, 255, 255, 100));
    		g.fillRect(0, 0, 300, 300);
    	}
    	
    	public TestLayeredPane(String title) {
    		
    		super(title);
    		// 图片标签jl
    		ic = new ImageIcon("bg.jpg");
    		jl = new JLabel();
    		jl.setBounds(0, 0, ic.getIconWidth(), ic.getIconHeight());
    		setLayout(new FlowLayout());
    		add(new JButton("测试按钮"));
    		
    		/*
    		 * // 设置透明层 jp = (JPanel) this.getContentPane();
    		 * 
    		 * jp.setOpaque(false); jp.setLayout(new FlowLayout()); jp.add(new
    		 * JButton("测试按钮"));
    		 * 
    		 * // 添加背景图片 this.getLayeredPane().setLayout(null);
    		 * this.getLayeredPane().add(jl, new Integer(Integer.MIN_VALUE));
    		 */
    		this.setSize(ic.getIconWidth(), ic.getIconHeight());
    		 
    		this.setVisible(true);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    	public static void main(String[] args) {
    		new TestLayeredPane("背景图片测试");
    	}
    }
    
    
    • 实现方法2:

    两个panel 第一个设置透明放各种控件,第二个利用getLayeredPane()添加 图片JLabel.此方法本人不知道什么原因没实现 所以注释掉了.

    展开全文
  • import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt.TextField; import javax.swing.*;...public class findjob extends JFrame{ fin

    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Font;
    import java.awt.GridLayout;
    import java.awt.TextField;

    import javax.swing.*;

    public class findjob extends JFrame{
    findjob(){
    super("设置背景");

    Container c = getContentPane(); //获取JFrame面板 
    JPanel jp = new JPanel(); //创建个JPanel 
    jp.setOpaque(false); //把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了 
    ((JPanel)this.getContentPane()).setOpaque(false); 
    ImageIcon img = new ImageIcon("c://Users/qinjia/Desktop/eclipse/findjob/src/findjob/bg.jpg"); 

    JLabel background = new JLabel(img);

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

    background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight()); 

    c.add(jp); 
    setSize(img.getIconWidth(), img.getIconHeight()); 
    setVisible(true); 
    }
    public static void main(String args[]){
      findjob my=new findjob(); 
    }
    }
    展开全文
  • 在做一个Swing项目时,想更改窗口的图标和设置背景图片,参考了网上很多源码,首先示例源码大多是没有问题的,但是我一直运行时图片就是显示不出来,偶然间看到了一种设置或获取图片路径的方法代码,忘记了在哪看到...
  • import java.awt.Container; import javax.swing.ImageIcon;...import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Test extends JFrame {  public Test() {  s
  • import java.awt.Container;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Test extends JFrame { public Test() { setB...
  • 概要:JFrame中没有直接设置背景图片的方法,所以我们就需要自己动手来给他加个背景图片。效果展示:核心代码:[Java]1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637 package ...
  • 设置JFrame背景图片

    2015-12-26 20:44:40
    原文地址:设置JFrame的背景图片作者:Xrong//背景图片设置后,窗口中的组件位于背景图片之上 import java.awt.FlowLayout; import java.awt.image.BufferedImage; import java.io.File; import java.io....
  • swing中JFrame设置背景颜色和背景图片

    千次阅读 2019-04-05 19:38:44
    JFrame窗口的组成部分:。 最底层是RootPane, 上一层是LayeredPane, 再上面就是ContenePane, 最顶层就是GlassPane。 最 顶层的GlassPane默认是透明的; ContentPane默认是一个JPanel,在JFrame上添加组件,往往是...
  • Jframe添加背景图片

    2012-12-25 15:54:13
    Jframe添加背景图片,图片根据你的显示框显示,里面有注解
  • JFrame背景图片: 把这段代码加在JFrame的构造函数中 JPanel panel = new JPanel(){ public void paintComponent(Graphics g){  try{  g.drawImage(ImageIO.read(new File("图片路径")),0  ,0,this.
  • JFrame设置背景图片

    2013-08-05 09:06:59
    原文地址:JFrame设置背景图片作者:xiaoy  import  javax.swing.*;   import  java.awt.*;   import  java.awt.event.*;    public class  bj   {    private  JFrame  frame  =  new  ...
  • JFrame设置背景

    2013-05-15 12:04:50
    我们首先要知道JFrame的结构,JFrame是由这么几部分组成:最底下一层JRootPane,上面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane),而layeredPane又由contentPane(一个JPanel)和menuBar构成。...
  • JFrame放置背景图片

    千次阅读 2016-01-17 16:04:34
    为了给JFrame放置背景图片可以使用JLayeredPane,这是一个分层的面板,它一共分了七层,我们在这里只需要使用其中的两层就可以实现放置背景图片,下面一层放背景图片,上面一层放控件,另外需要注意的是,使用了...
  • 在写JAVA小游戏中新建了一个继承JFrame的类,然后重写了paint方法,在里面绘制了一个空白图像用于双缓冲,之后我想设置JFrame背景图片,或是在其中添加组件都无法显示,如果在paint方法中加super(g)后,才会显示...
  • jframe窗口设置背景图片

    千次阅读 2015-09-20 14:08:44
    感谢新浪博客: ...成功实现了如何为jframe窗口设置背景图片了。下面是示例,请初学swring的朋友们参考学习! import java.awt.*; import javax.swing.*; import java.awt.Container; public c
  • jFrame背景图片设置

    2017-02-24 14:53:17
    import java.awt.Container; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton;...import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;
  • 代码: import java.awt.FlowLayout; import javax.swing.ImageIcon;...import javax.swing.JButton;...import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class JFr
  • 设置JFrame背景图片

    2018-11-10 16:00:00
    这里我就放上改写的代码吧,不做多的解释,推荐一个好的博文 ... 1 public void ini_background() { 2 // 背景图片 3 ImageIcon background = new ImageIcon( 4 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,606
精华内容 1,842
关键字:

jframe设置背景图片