`

JPanel image Background

阅读更多
在这里找到的。
http://topic.csdn.net/u/20090326/21/a4ca9989-631e-42d1-8f4e-7d6cd6efa14f.html

原来核心是重载paintComponent绘制方法。原来的代码给我改过了。先看原代码会好点,他的注释很详细!
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JPanel;

public class JImagePanel extends JPanel
{
	public static final int TENSILE = 1; // 拉伸
	public static final int CENTRE = 2; // 居中
	public static final int TILED = 3; // 平铺

	private Image backGround = null;
	private int displayMode = 2;

	public JImagePanel(String image, int displayMode)
	{
		this(Toolkit.getDefaultToolkit().getImage(image), displayMode);
	}

	public JImagePanel(Image image, int displayMode)
	{
		super();
		this.displayMode = displayMode;
		backGround = image;
	}

	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		if (backGround != null)
		{
			int width = getWidth();
			int height = getHeight();
			int imageWidth = backGround.getWidth(this);
			int imageHeight = backGround.getHeight(this);

			switch (displayMode)
			{
				case CENTRE:
				{
					int x = (width - imageWidth) / 2;
					int y = (height - imageHeight) / 2;
					g.drawImage(backGround, x, y, this);
					break;
				}
				case TILED:
				{
					for (int ix = 0; ix < width; ix += imageWidth)
					{
						for (int iy = 0; iy < height; iy += imageHeight)
						{
							g.drawImage(backGround, ix, iy, this);
						}
					}
					break;
				}
				case TENSILE:
				{
					g.drawImage(backGround, 0, 0, width, height, this);
					break;
				}
			}
		}
	}
}





分享到:
评论

相关推荐

    可插入背景图片的JPanel

    g.drawImage(backgroundImage, 0, 0, this.getWidth(), this.getHeight(), this); } } ``` 这里的`g.drawImage()`方法将图片绘制到组件上,参数分别表示图片源、目标坐标和大小。`this.getWidth()`和`this....

    JAVA 实现不规则图片背景效果

    this.backgroundImage = backgroundImage; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(backgroundImage, 0, 0, this); } } ``` 2. **加载和设置图片*...

    如何给面板或窗体添加背景图片

    this.backgroundImage = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(backgroundImage, 0, 0, this.getWidth(), this.getHeight(), null); } }...

    Java中JFrame添加图片的两种方法.pdf

    private Image backgroundImage; public MyPanel(Image image) { backgroundImage = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(background...

    java实现背景图

    这个场景中,我们看到一个名为"java实现背景图"的项目,它包含了一个名为`BackGround.jar`的可执行Java档案,一个源代码文件`BackGround.java`,以及一张可能用于设置背景的图片`Mac.jpg`。下面我们将详细讨论如何在...

    Java设置窗体背景图像.docx

    private Image background; public BackgroundPanel(String imagePath) { background = new ImageIcon(imagePath).getImage(); } @Override protected void paintComponent(Graphics g) { super....

    java application添加图片

    首先创建一个`ImageIcon`对象,然后可以通过它的`getImage()`方法获取到一个`Image`对象。 2. **使用`JLabel`**:可以利用`JLabel`的构造函数直接传入`ImageIcon`对象来显示图片。 3. **使用`JButton`**:同样地,也...

    java设置背景图片源代码

    import javax.swing.JPanel; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JLabel; import java.net.URL; ``` 2. **读取图片**: ...

    捕鱼达人java代码

    通过Java Swing库中的`JFrame`和`JPanel`实现了一个游戏窗口,在该窗口中动态显示了多个移动的鱼。 #### 二、代码结构分析 ##### 1. `FishDemo`类 这是程序的入口类,通过`main`方法启动程序。主要功能包括: - ...

    java设置背景

    - `drawImage(Image img, int x, int y, ImageObserver observer)`:在指定位置绘制图像。 - 参数: - `img`:要绘制的图像对象。 - `x` 和 `y`:指定绘制图像的左上角坐标。 - `observer`:图像观察者,用于...

    java的小程序

    Image image = ImageIO.read(getClass().getResource("image/tubiao.png")); this.setIconImage(image); }catch(Exception e){ } this.setBounds(400,200,230,290); this.setTitle("计算器"); this....

    仿QQ登录窗体,拉伸展开!

    JPanel backgroundPanel = new JPanel(){ public void paintComponent(Graphics g) { g.drawImage(new ImageIcon("image\\loginframe1.jpg").getImage(), 0, 0,500,300, null); super.paintComponent(g); } };...

    Java程序添加漂亮背景图片的方法

    BufferedImage backgroundImage = ImageIO.read(new File("path_to_your_image.jpg")); ``` 3. **自定义JPanel**: 创建一个继承自JPanel的类,并重写paintComponent()方法,以便在该方法中绘制背景图片。 ```...

    login.java

    ImageIcon m=new ImageIcon("image//denglu.jpg"); JLabel background = new JLabel(m); this.getLayeredPane().add(background ,new Integer(Integer.MIN_VALUE ) ); background.setBounds(0,0,m....

    在jframe中将图像设置为背景图像

    提供的`set-image-as-background-image-in-jframe.pdf`文件可能包含了更详细的解释和示例代码,你可以查阅以获取更多信息。记得在实际编程时,确保正确处理异常,以及资源的释放,以保持程序的健壮性和效率。

    java五子棋

    例如,`BufferedImage backgroundImage = ImageIO.read(imgURL);` 用来从指定的URL加载图像。 - **图像绘制**:通过覆盖 `paintComponent(Graphics g)` 方法来自定义组件的绘制逻辑。在 `Bjpanel` 类中,会根据当前...

    飞机大战java.pdf

    setBackground(Color.BLACK); setFocusable(true); requestFocusInWindow(); addKeyListener(this); playerPlane = new Plane(); // 假设Plane类已经定义好 timer = new Timer(16, this); // 每秒60帧 ...

Global site tag (gtag.js) - Google Analytics