`
My*Love
  • 浏览: 72447 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Swing自定义界面背景图片实现

    博客分类:
  • JAVA
阅读更多
  其实对于Swing也用的不是很熟,因为朋友问到才回头搞一下,给窗体设置背景图片还是做过的,但朋友是想实现像Windows自定义桌面那样的功能,能用户自己选择图片设置成界面背景。
   本来是想将图片放到一个JPanel里面,然后通过JPanel里面的paintComponent(Graphics g)方法画出来,这个可以实现静态设置,但动态选择就不行了,真的很无语.....
   在网上找了很多资料,基本上都是前一种方法,后来决定另寻思路,其实设置背景图片用JLabel可以实现,但总感觉效果不好,下面还是记录一下吧。

/**
 * 动态设置窗体背景图片
 */
public class ImageFrame extends JFrame {
	private ImageIcon bgImg;
	private JLabel label;
	private JButton button;
	private static String[] images = intiImages();
	private static int index;

	public ImageFrame() {
		// 默认背景图片
		bgImg = new ImageIcon(images[0]);
		// 将图片显示到label中
		label = new JLabel(bgImg);
		// 标签的大小位置设置为图片刚好填充整个面板
		label.setBounds(0, 0, bgImg.getIconWidth(), bgImg.getIconHeight());
		// 得到窗体的内容面板
		JPanel pane = (JPanel) this.getContentPane();
		// 设置窗体为透明的
		pane.setOpaque(false);
		// 设置布局方式,内容窗格默认的布局管理器为BorderLayout
		pane.setLayout(new FlowLayout());
		button = new JButton("Next");
		pane.add(button);
		// 把背景图片添加到分层窗格的最底层作为背景
		this.getLayeredPane().setLayout(null);
		this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
		// 设置窗体大小,跟图片一样大
		this.setSize(bgImg.getIconWidth(), bgImg.getIconHeight());
		// 窗体居中
		this.setLocationRelativeTo(null);
		// 窗体关闭
		this.setDefaultCloseOperation(3);
		// 窗体不能放大
		this.setResizable(false);
		this.setVisible(true);
		// 点击按钮换成下一张图片
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				index++;
				if (index >= images.length) {
					index = 0;
				}
				bgImg = new ImageIcon(images[index]);
				label.setIcon(bgImg);
				label.setBounds(0, 0, bgImg.getIconWidth(), bgImg
						.getIconHeight());
				//重新设置窗体位置
				setSize(bgImg.getIconWidth(), bgImg.getIconHeight());
				setLocationRelativeTo(null);
			}
		});
	}

	/**
	 * 初始化图片数组
	 * 
	 * @return
	 */
	public static String[] intiImages() {
		String imgUrl = "src/images/";
		String[] images = new String[6];
		for (int i = 0; i < images.length; i++) {
			images[i] = imgUrl + (i + 1) + ".jpg";
		}
		return images;
	}

	public static void main(String args[]) {
		new ImageFrame();
	}
}

  代码就不用多解释了,那个数组里面是放6张图片路径,图片名是以数字开头的,点击Next会把下一张图片作为背景。
   其实实现都很简单,只是没想到更好实现,如果有人有什么更好的想法或实现,希望一起分享。
1
0
分享到:
评论

相关推荐

    swing中自定义对话框的几种实际用法

    Swing是Java编程环境中用于构建图形用户界面(GUI)的一个重要工具包,它提供了丰富的组件和功能,使得开发者能够创建出美观且功能强大的桌面应用程序。在Swing中,对话框是一种特殊的窗口,用于向用户提供临时信息...

    Swing GUI设置登录界面的背景图片并把内容放到图片上面源码

    在Java的Swing库中创建GUI界面时,我们经常需要为窗口添加个性化设计,比如设置登录界面的背景图片。这个任务可以通过使用`JLabel`组件和`ImageIcon`类来实现。下面将详细介绍如何实现这一功能。 首先,我们需要...

    Swing控件(JPanel,Container等)设置背景图片

    Swing提供了丰富的功能,包括允许开发者为这些组件设置自定义的背景图片,以提升应用的视觉效果。这篇博文主要讨论了如何在JPanel和Container上设置背景图片,下面将详细解释这个过程。 首先,我们需要了解JPanel和...

    自定义界面外观

    在本文中,我们将深入探讨如何利用图片的形状来实现自定义界面外观,以及这一过程涉及到的关键技术和实践方法。 首先,让我们理解GUI(图形用户界面)的基本概念。GUI是用户与计算机系统进行交互的主要方式,它通过...

    swing自定义按钮

    本篇文章将详细讲解如何利用Swing来实现自定义按钮,特别是根据不同形状的图片来绘制按钮,并赋予按钮三种状态(默认、鼠标悬停和按下)的样式。 首先,我们要了解Swing中的JButton类,它是用于创建按钮的基本组件...

    swing自定义 button

    在Java的Swing库中,`JButton`是用于创建用户界面中按钮组件的重要类。Swing提供了丰富的功能,使得开发者能够自定义按钮的行为、外观和交互方式。本篇文章将详细探讨如何创建和自定义`JButton`,以及如何响应按钮...

    java swing界面设计

    Java Swing是Java编程语言中用于构建桌面应用程序图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。本教程将引导初学者深入理解Java Swing,帮助他们快速掌握界面设计的基础知识。 1. **...

    JavaSwing界面设计(所有控件及示例)

    Swing 组件允许设置背景色、前景色、字体等属性,以定制界面样式。 总结起来,Java Swing 提供了一整套组件和工具,用于创建丰富的图形用户界面,无论是在桌面应用还是轻量级应用中都有广泛的应用。理解和熟练掌握...

    JavaSwing用户界面设计

    #### 一、Swing 的背景及介绍 - **Swing 的起源**:Swing 是 Java 技术中的一个重要组成部分,用于构建图形用户界面(GUI)。它诞生于 Java 早期阶段,主要是为了解决原有 AWT 组件库的一些局限性和不足之处。 - *...

    SwingHacks学习笔记(2)-----自定义JLabel,JButton

    这篇“SwingHacks学习笔记(2)-----自定义JLabel,JButton”博客文章深入探讨了如何利用Swing自定义组件,特别是JLabel和JButton,以实现更丰富的用户交互。 JLabel是Swing中用于显示文本、图像或两者组合的基本组件...

    java Swing 气泡浮动提示窗口代码

    总的来说,这段代码提供了一种在Swing应用中实现气泡浮动提示窗口的方法,通过自定义组件和布局,结合颜色、字体等设计元素,以及动画效果,创建了一个具有视觉吸引力且功能完备的提示机制。开发者可以根据实际需求...

    自定义Swing组件代码

    本主题主要关注如何自定义Swing组件,以便满足特定需求或实现独特功能。下面我们将深入探讨自定义Swing组件的基本概念、步骤以及相关知识点。 一、Swing组件基础 Swing组件是构建GUI的基础,包括按钮(JButton)、...

    Jframe添加背景图片

    在Java Swing中,我们经常需要为`JFrame`窗口设置背景图片来提升用户体验或实现特定的设计需求。本文将详细介绍如何在`JFrame`中添加背景图片,并通过一个示例程序来具体说明实现过程。 #### 一、基本原理 在Swing...

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

    在Java编程中,给面板(Panel)或窗体(JFrame)添加背景图片是一个常见的需求,这不仅可以增加用户界面的美观性,也能提供更丰富的交互体验。以下将详细讲解如何在Java Swing中实现这一功能。 首先,我们需要了解...

    Java教程编程中国\\JAVA教程 第七讲 Swing用户界面设计

    ### Java Swing 用户界面设计知识点详解 #### 一、Swing简介及发展背景 **1.1 背景概述** Swing是Java图形用户界面(GUI)编程中的一个重要组成部分,它是建立在AWT基础之上的一个高级GUI库。AWT(抽象窗口工具包)是...

    Java_Swing_KTV工程

    总的来说,"Java_Swing_KTV工程"是一个利用Java Swing技术实现的KTV管理系统前端,它展示了Swing在构建复杂、美观用户界面方面的强大能力。通过深入学习和理解Swing的各种组件和机制,开发者能够创建出更加专业和...

    javaSwingQQ登录界面

    Swing允许通过设置组件的背景色、前景色、边框和图标来定制界面的外观。为了模仿QQ的风格,开发者可能需要获取并应用QQ的品牌颜色、字体以及登录按钮的高亮效果。 事件监听是实现界面交互的核心部分。Swing中的...

    java swing 毛玻璃实现

    本教程将专注于一个特定的主题——"毛玻璃效果"(也称为模糊背景或亚克力效果)在Java Swing中的实现。 毛玻璃效果是一种设计趋势,它在界面上创建半透明、模糊的背景,以突出显示前景元素。在Java Swing中,我们...

    Java Swing仿“酷我音乐盒”界面,搭建简单通用前端框架

    此外,Swing还支持添加图片背景,这在“贴图”这个标签中被提及,可能是指将特定的图像应用到组件上,以增强界面的美观性。 “仿酷我音乐盒”意味着开发者不仅关注了界面的外观,还考虑了交互性和用户体验。例如,...

    SWING实现类似微信的泡泡聊天界面

    "SWING实现类似微信的泡泡聊天界面"这个主题旨在教你如何利用Swing来创建一个模仿微信聊天界面的效果,它通常包括气泡状的消息显示框、头像、时间戳等元素。这个项目不仅涉及到基本的组件使用,还可能涵盖了自定义...

Global site tag (gtag.js) - Google Analytics