`

SWING设置背景图片

阅读更多
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.filechooser.FileNameExtensionFilter;

public class DrawBackgroundImage extends JFrame {
	private JLabel bgL = new JLabel();

	public DrawBackgroundImage() {
		setTitle("设置背景图片");
		setSize(500, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null);

		JPanel p = new JPanel() {
			private static final long serialVersionUID = 1L;

			@Override
			protected void paintComponent(Graphics g) {
				if (bgL.getIcon() != null) {
					g.drawImage(((ImageIcon)bgL.getIcon()).getImage(), 0, 0, null);
				}
			}

		};

		JButton btn = new JButton("选择背景图片");
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				JFileChooser jfc = new JFileChooser();
				FileNameExtensionFilter imageExtension = new FileNameExtensionFilter("Image Files (.jpg | .jpeg | .bmp | .png | .gif)", "jpg","jpeg","bmp","png","gif");
				jfc.addChoosableFileFilter(imageExtension);
				jfc.setDialogType(JFileChooser.SAVE_DIALOG);
				int res = jfc.showSaveDialog(DrawBackgroundImage.this);
				
				if (res == JFileChooser.APPROVE_OPTION) {
					File file = jfc.getSelectedFile();
					System.out.println(file.getAbsolutePath());
					setBg(new ImageIcon(file.getAbsolutePath()));
				}
			}
		});
		p.add(btn);
		this.getContentPane().add(p);
		
		// 添加一些组件,便于查看
		String[][] rowData = new String[9][2];
		for (int i=0;i<9;i++) {
			rowData[i][0] = "值1";
			rowData[i][1] = "值2";
		}
		String[] columnNames = {"列1","列2"};
		JTable table =new JTable(rowData, columnNames);
		p.add(new JScrollPane(table));
	}
	
	public void setBg(ImageIcon icon) {
		bgL.setIcon(icon);
		repaint();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new DrawBackgroundImage().setVisible(true);

	}

}

分享到:
评论

相关推荐

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

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

    Java Swing实现窗体添加背景图片的2种方法详解

    在Java Swing中,创建美观的用户界面通常需要对窗体进行一定程度的定制,其中一种常见的需求就是添加背景图片。本文将详细介绍两种在Java Swing中实现窗体添加背景图片的方法,并探讨Swing重绘过程中的`repaint()`和...

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

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

    设置图片适合swing组件

    在Java Swing图形用户界面开发中,经常需要为各种组件(如JLabel、JButton等)设置背景图片,并且希望这些图片能够根据组件的大小自动调整,以实现美观且响应式的设计效果。本文将详细介绍如何在Swing中实现这一功能...

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

    Java GUI 背景图片添加方法 在 Java 中添加背景图片到 GUI 界面是一项常见的需求。通过使用 Java 的图形用户界面(GUI)组件,例如 JFrame、JPanel、JLabel 等,可以轻松地将背景图片添加到 GUI 界面中。本文将详细...

    java设置背景图片源代码

    在Java编程中,设置背景图片是一项常见的任务,特别是在开发图形用户界面(GUI)应用程序时。以下是如何在Java中实现这一功能的详细步骤和知识点: 首先,我们需要了解Java的Swing库,它提供了丰富的组件和工具来...

    JAVA如何在为窗口设置背景图片.doc

    JAVA如何在为窗口设置背景图片 在 Java 中,为窗口设置背景图片是非常常见的操作。下面将详细介绍如何使用 Java 实现这一功能。 知识点1: 导入必要的类 在 Java 中,需要导入必要的类以便使用它们。例如,在这个...

    Jframe添加背景图片

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

    通过 PanelUI 实现 Swing JPanel 的渐进色背景和图片背景

    JPanel 渐进色背景,和图片背景(可叠加)的实现代码,以及使用样例。 jar文件中包含源代码,本身可执行以便于看效果。

    Swing实现ATM取款机系统(带sql文件)java全套代码,支持换背景图片

    注册,登录,改密码,存款,取款,转账,交易记录,手机充值,换背景图片,退出登录,带SQL文件 1.基于JavaSwing开发的ATM取款机系统,适合课程设计和毕业...3.功能介绍:支持设置背景图片,经过多次优化,100%可运行

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

    要给JFrame添加背景图片,我们通常会利用JPanel,因为JFrame本身默认是透明的,无法直接设置背景图片。以下是一个基本的步骤: 1. **加载图片**: 使用Java的`javax.imageio.ImageIO`类来读取图片文件,例如JPG、...

    Java编程实现swing圆形按钮实例代码

    我们还创建了一个带图片的按钮,并将其添加到JFrame中。最后,我们使用JFrame的setDefaultCloseOperation方法来设置JFrame的关闭操作。 本文主要介绍了Java编程实现swing圆形按钮实例代码,涉及两个简单的Java实现...

    java 如何在窗体背景图片上加控件

    1. **设置窗体背景图片**: - 首先,加载背景图片。你可以使用`ImageIcon`类来读取本地或网络上的图片资源。例如: ```java Image backgroundImage = new ImageIcon("path_to_your_image").getImage(); ``` -...

    jpanel设置背景图片的二个小例子

    本篇将通过两个小例子详细介绍如何在`JPanel`中设置背景图片。 ### 示例1:动态加载背景图片 在第一个例子中,我们创建了一个名为 `ImagePanel` 的类,它继承自 `JPanel`。这个类的目的是能够动态加载图片作为背景...

    JAVA GUI 开发---登录界面加载背景图片

    - 将读取到的图片设置为JPanel的背景,这需要重写`paintComponent(Graphics g)`方法,在其中调用`g.drawImage()`绘制图片。 2. **设置布局管理器** - 为了确保背景图片组件能填充整个JFrame,我们需要使用...

    java登录界面背景图片的添加.pdf

    使用 `new ImageIcon("./shuxiang.jpg")` 语句来加载背景图片,然后将其设置为 `JPanel` 的背景。使用 `JLabel` 对象来显示背景图片,并将其添加到 `JPanel` 中。 此外,我们还使用了事件监听器来处理按钮的点击...

    Swing三个漂亮实例

    在Swing中,可以通过设置组件的Alpha值来实现半透明效果。`setOpaque(false)`方法可以使组件变为透明,然后通过`setOpacity(float alpha)`方法设置组件的透明度,其中0.0表示完全透明,1.0表示完全不透明。这个特性...

    可插入背景图片的JPanel

    在Java GUI编程中,我们经常会遇到需要为组件添加视觉效果,比如设置背景图片。标题“可插入背景图片的JPanel”指向的就是一个解决此类问题的技巧。Java的标准库并未提供直接在`JPanel`上设置背景图片的方法,但是...

    Swing之JTable详解

    ### Swing之JTable详解 #### 类层次结构图 在Swing框架中,`JTable`是构建GUI应用程序中表格的主要组件。它继承自`JComponent`类,这使得`JTable`能够支持丰富的图形用户界面功能。下面展示了`JTable`的类层次结构...

Global site tag (gtag.js) - Google Analytics