`

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等)设置背景图片

    NULL 博文链接:https://javapub.iteye.com/blog/764681

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

    主要介绍了Java Swing实现窗体添加背景图片的2种方法,结合实例形式较为详细的分析了Swing实现窗体添加背景图片的方法,并总结分析了Swing重绘中repaint与updateUI的区别,需要的朋友可以参考下

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

    Swing GUI设置登录界面的背景图片并把内容放到图片上面 https://blog.csdn.net/scc95599/article/details/100732039 示例代码

    设置图片适合swing组件

    在swing的组件,如JLabel,JButton等,设置背景图片自适应自检的大小。

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

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

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

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

    Swing之JTable详解

    Swing之JTable详解 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.JTabel

    swing变形窗口

    参考了csdn的一篇文章使用透明图片作为swing窗口的形状并把图片设为背景,由于图片有点大,刚开始一个单线程扫描所有像素差不多要2秒才能打开,后来改成2个线程隔行扫描,把扫描的时间降到500毫秒,也尝试使用更多的...

    swing中JTable的使用

    JFrame为自主布局,设置了背景图片以及窗口图标 有详细注释 例如: TableModel tableModel = jTable1.getModel(); DefaultTableModel dtm = (DefaultTableModel) tableModel; /* * TableModel是一个接口 没有删除一...

    Java背景图片的放大和缩小

    Java背景图片的放大和缩小,让你更好的掌握swing组件和监听事件

    基于Java swing的风景日历课程设计

    该系统主要运用swing相关组件、面板进行布局,左侧是日历界面,右侧是背景图片显示界面。日历可以按年、月进行前后翻动;使用鼠标点击左侧进行日期选择,右边可通过下拉栏对选择的日期进行背景图片的设置。

    Java Swing打猎射击游戏

    带简单背景音乐的Java Swing打猎射击游戏,比较简单的游戏,代码与图片等资源部分来源网络

    javaSwing特效编程

    66火焰背景 67火烧文字 68水纹中的字 69七彩文字 70淡出淡入的图案 71移动的彩虹 72震动的图 73电子钟 74下雪的图档 75游动的图片 76闪烁的霓虹灯 77波动的文字 78角度绘制器 79渐变色 80奇妙图形 81无限星空 82跳跃...

    Java Swing 经典小游戏《飞机大战》图片资源

    Java Swing 经典小游戏《飞机大战》 决战没有犯错误的机会躲开对手有时是最好的生存手段。 技能点: 添加滚动背景 双缓冲 动画播放 面向对象的编程

    QQ[Swing完美模仿版].rar

    模仿QQ登录界面---QQ[Swing完美模仿版],登录背景图片,按钮功能实现,源代码+部分代码注释

    背景上面添加按钮

    java中的swing中在背景图片上添加按钮

    课程设计-java swing带GUI界面的图书管理系统(源码 + Mysql数据库+报告).zip

    使用Java + MySQL设计,利用Java Swing设计窗体,将主窗体底层面板插入背景图片标签后,通过设置窗体转换为容器后再将容器转换为的面板为透明来实现设置背景图片。通过表格组件与数据库的交互来显示当前图书全部信息...

    带图片背景的面板

    import javax.swing.*;import java.awt.*;public class Mycanvas extends JPanel{ private Toolkit tool; private Image myimage; public Mycanvas(){ setPreferredSize(new Dimension(800,600)); tool=getToolkit()...

    开发项目用SWING与RCP与SWT.JFACE的分析

    StyledText是Text构件的扩展,它提供了丰富的文本功能,比如对某段文字的背景色、前景色或字体的设置。在*.custom包中也可找到一个新的StackLayout布局方式。 SWT对用户操作的响应,比如鼠标或键盘事件,也是采用了...

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

    给定链接对解决方案有相同的问题。 去那里在JFrame中设置背景图像[^]使用背景图像创建框架[^]

Global site tag (gtag.js) - Google Analytics