java里怎样使背景图片适应窗口大小?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里怎样使背景图片适应窗口大小?相关的知识,希望对你有一定的参考价值。

import java.awt.*;
import javax.swing.*;
public class Main_window_test extends JFrame

JPanel jp1=null,jp2=null;
public static void main(String[] args)

new Main_window_test();

public Main_window_test()


ImageIcon image = new ImageIcon("image\\notebook.gif");//这是背景图片
JLabel imgLabel = new JLabel(image);//将背景图放在"标签"里。

imgLabel.setBounds(0,0,image.getIconWidth(), image.getIconHeight());//设置背景标签的位置
this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。
Container cp=this.getContentPane();

((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(width/2-200, height/2-150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,300);
this.setResizable(false);
this.setVisible(true);


这是我窗口显示图片的代码,我的原始图片比较大,可所需的窗口界面挺小的,我要设置的这个窗口也是固定的不改变大小的,要怎么实现呢?谢谢!

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

public class Main_window_test extends JFrame


JPanel jp1 = null, jp2 = null;

public static void main(String[] args)

new Main_window_test();


public Main_window_test()


Image image = new ImageIcon("image\\notebook.gif").getImage();// 这是背景图片
JLabel imgLabel = new aLabel(image);// 将背景图放在"标签"里。

this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));// 注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。
Container cp = this.getContentPane();

((JPanel) cp).setOpaque(false); // 注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(width / 2 - 200, height / 2 - 150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setResizable(false);
this.setVisible(true);

imgLabel.setBounds(0, 0, this.getWidth(),this.getHeight());// 设置背景标签的位置


//内部类
private class aLabel extends JLabel

private Image image;
public aLabel(Image image)

this.image = image;

@Override
public void paintComponent(Graphics g)

super.paintComponent(g);
int x = this.getWidth();
int y = this.getHeight();

g.drawImage(image, 0, 0, x, y, null);



要实现全部画出来,需要用到drawimage()方法,最好的办法就是重新写一个JLabel类
参考技术A 设置图片宽度等于窗口宽度
var width=$(window).width();
$("img").width(width);

怎样用css控制图片自适应大小?

参考技术A

1、首先用dw编辑器建立了一个静态页面

2、将建好的静态页命名为css.html,标题为了“css如何设置图片大小自适应”

3、在body中添加两个div,设置不能的宽度,并设class 为div1和div2,目的是用一样的css控制图片的宽度在不同的宽度容器中都能很好的显示

4、在两个div的class 中添加相同的控制图片的class名为了 ”img“,并为div添加控制宽度的样式

5、在两个div中加入相同的图片<img src="images/5.png" />,在浏览器打开页面发现加入图片后把原来的div都给覆盖掉了

6、这个时候我们需要在img 类中加入限制图片的宽度的css语句让他自己适应容器的宽度.img img width:100%; height:auto

以上是关于java里怎样使背景图片适应窗口大小?的主要内容,如果未能解决你的问题,请参考以下文章

winform中.当鼠标移到一个图片上怎样能使图片放大??

使随机标签位置适应窗口大小的最有效方法是啥?

使用 CSS 使 GIF 大小适应浏览器窗口尺寸

Qt图片自适应窗口控件大小(使用setScaledContents)

火狐浏览器如何令网页图片适应当前窗口的大小?

响应式设计怎样让图片自适应