说明:本实例实现了两种背景图片的设置方法:
1,小幅图片自动复制多张填充整个背景。
2,大幅图片一张图填充整个背景。
package cn.xcu.ui;
import java.awt.Dimension;
import java.awt.Graphics;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* 自定定带背景图片的Panel
*
* @author Everest
*
*/
public class JPanelXcu extends JPanel {
private static final long serialVersionUID = -7844180055896970944L;
private ImageIcon img; //背景图片
public JPanelXcu() {
this.img = new ImageIcon(getRes("cn/xcu/img/bgg.jpg"));
}
public JPanelXcu(ImageIcon imgbg) {
if(imgbg !=null){
this.img = imgbg;
}else{
this.img = new ImageIcon(getRes("cn/xcu/img/bgg.jpg"));
}
}
private URL getRes(String str){
return this.getClass().getClassLoader().getResource(str);
}
/**
* 整张图做背景
*/
/*protected void paintComponent(Graphics g) {
try {
ImageIcon img = new ImageIcon(getRes("cn/xcu/img/bgg.jpg"));
g.drawImage(img, 0, 0, 500, 400, null);
} catch (IOException e) {
e.printStackTrace();
}
}*/
/**
* 小图片填充做背景
*/
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setOpaque(true);
Dimension d = getSize();
for (int x = 0; x < d.width; x += img.getIconWidth()){
for (int y = 0; y < d.height; y += img.getIconHeight()){
g.drawImage(img.getImage(), x, y, null, null);
}
}
}
/**
* 自测试
* @param args
*/
public static void main(String[] args) {
JFrame jf = new JFrame("有背景的panel");
jf.setSize(500, 400);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(new JPanelXcu());
jf.setVisible(true);
}
}
分享到:
相关推荐
这篇博文主要讨论了如何在JPanel和Container上设置背景图片,下面将详细解释这个过程。 首先,我们需要了解JPanel和Container的基本概念。JPanel是Swing中的一个轻量级组件,它是Container类的一个子类,主要用于...
标题“可插入背景图片的JPanel”指向的就是一个解决此类问题的技巧。Java的标准库并未提供直接在`JPanel`上设置背景图片的方法,但是通过自定义`JPanel`并重绘组件,我们可以实现这个功能。描述中提到的解决方案可能...
有时候,我们可能希望为`JPanel`添加背景图片以提升视觉效果。本篇将通过两个小例子详细介绍如何在`JPanel`中设置背景图片。 ### 示例1:动态加载背景图片 在第一个例子中,我们创建了一个名为 `ImagePanel` 的类...
通过使用 Java 的图形用户界面(GUI)组件,例如 JFrame、JPanel、JLabel 等,可以轻松地将背景图片添加到 GUI 界面中。本文将详细介绍如何使用 Java 添加背景图片到 GUI 界面中。 首先,需要导入相关的包,包括 ...
1. **通过覆盖`paintComponent`方法**:这是最常见的方法,通过在自定义的`JPanel`中覆盖`paintComponent`方法,绘制背景图片。 2. **使用`ImageIcon`和`JLabel`**:另一种方法是创建一个与`JFrame`大小相同的`...
要给JFrame添加背景图片,我们通常会利用JPanel,因为JFrame本身默认是透明的,无法直接设置背景图片。以下是一个基本的步骤: 1. **加载图片**: 使用Java的`javax.imageio.ImageIO`类来读取图片文件,例如JPG、...
JPanel 渐进色背景,和图片背景(可叠加)的实现代码,以及使用样例。 jar文件中包含源代码,本身可执行以便于看效果。
在默认情况下,JPanel有一个简单的背景色,但通常我们需要更个性化的设计,比如设置自定义的图片背景。为了实现这个目标,我们需要重写JPanel的`paintComponent()`方法。在重写过程中,我们可以利用Graphics对象来...
当你运行这个程序时,你会看到一个带有指定背景图片的新窗口。 在实际项目中,你可能需要处理各种情况,比如图片加载失败、图片尺寸不适合窗口大小等。你还可以使用布局管理器来调整组件的排列方式,或者添加额外...
public class Mycanvas extends JPanel{ private Toolkit tool; private Image myimage; public Mycanvas(){ setPreferredSize(new Dimension(800,600)); tool=getToolkit(); myimage=tool.getImage("炼铁/...
由于是在JPanel的绘制阶段处理,所以不会影响到布局管理器的功能,可以支持窗体大小变化时的背景图片缩放。 以下是一个完整的示例,展示了如何在JFrame中使用这两种方法: ```java public class ImageFrame ...
`BackGround.java`展示了如何在Swing环境中实现这一功能,而`BackGround.jar`则是该功能的可执行版本,`Mac.jpg`是实际使用的背景图片。通过理解这些文件的用途,开发者可以轻松地自定义自己的Java GUI程序的背景。
使用 `new ImageIcon("./shuxiang.jpg")` 语句来加载背景图片,然后将其设置为 `JPanel` 的背景。使用 `JLabel` 对象来显示背景图片,并将其添加到 `JPanel` 中。 此外,我们还使用了事件监听器来处理按钮的点击...
在本例中,我们使用了 JFrame、JPanel、JLabel 和 JButton 等组件来创建一个带有背景图片的图形用户界面。 2. 图像处理:在 Java 中,可以使用 ImageIcon 类来加载和处理图像。ImageIcon 类提供了一些有用的方法,...
4. 资源文件:可能包含图片、音频或其他游戏资源。 5. 其他辅助类:如键盘监听器、定时器等,用于实现游戏的实时响应。 总的来说,这个“大鱼吃小鱼”游戏通过Java的Swing库,利用JFrame和JPanel组件,结合AWT的...
5. **图片资源**: 项目中可能包含了方块和背景的图片资源,这些可以通过Java的ImageIcon类加载,并在JPanel上显示。`ImageIO`类可用于从文件中读取图像数据。 6. **多线程**: 为了使游戏流畅运行,游戏循环通常在...
例如,在这个示例程序中,我们将背景图片添加到一个 `JPanel` 中,并设置其大小和位置以便填充整个窗口。 知识点5: 使内容窗格透明 在 Java 中,使内容窗格透明需要使用 `setOpaque(false)` 方法。例如,在这个...
例如,可以使用 setBackground() 方法设置 JPanel 的背景色,使用 setSize() 方法设置 JPanel 的大小。 例如,在窗体中添加一个蓝色的面板: ```java JPanel p = new JPanel(); p.setBackground(Color.BLUE); p.set...
本文将详细讲解如何实现这一功能,并提供一个具体的实例代码——ImageTest.java,以及它所使用的背景图片1.JPG。 首先,我们要了解Java中的Swing库,它是用于构建GUI应用的主要工具。Swing提供了丰富的组件,如...
本文将深入探讨如何在Java图形用户界面(GUI)中加载背景图片,使登录界面更加生动和专业。 首先,我们需要了解Java的Swing库,它是Java GUI开发的主要工具。Swing提供了丰富的组件,如JFrame、JLabel、JButton等,...