swing开发-JPanel设置背景图

swing开发JPanel设置背景图

实现代码

1、工具类BackGroundImagePanle类

package centralControl.tool;

import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
 * 带背景图的jpanel
 * qxh
 * 2019年9月19日16:42:20
 * @author Administrator
 *
 */
@SuppressWarnings("serial")
public class BackGroundImagePanle extends JPanel{
	private ImageIcon icon;
	
	/*public ImageIcon getIcon() {
		return icon;
	}*/
	public void setIcon(ImageIcon icon) {
		this.icon = icon;
	}
	private int x = 0;
	private int y = 0;
	public BackGroundImagePanle(String url) {
		// TODO Auto-generated constructor stub
		icon = new ImageIcon(this.getClass().getResource(url));
	}
	public void paintComponent(Graphics g) {
		g.drawImage(icon.getImage(), x, y, getSize().width,getSize().height, this);// 图片会自动缩放
	}
}

2、使用

private static String LIST_BACK3 = "/centralControl/img/listback3.png";

BackGroundImagePanle ingPanel= new BackGroundImagePanle(LIST_BACK3);

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 1 课设任务及要求 1 1.1课设任务: 1 1.2创新要求: 1 1.3设计要求 1 2 需求分析 1 2.1 设计背景 1 2.2 开发的技术及功能 2 3 设计思路 2 4 详细设计 4 4.1功能实现: 4 4.4 程序设计过程 5 5 系统调试 5 5.1 运行调试 5 6 参考文献 7 附录 7 1 课设任务及要求 1.1课设任务: 、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进 行浮点数和负数的运算); 、有求倒数、退格和清零功能。 1.2创新要求: 能进行正切、余弦,以及求平方根、指数 (包括对e)、自然对数运算。 1.3设计要求 设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正 负号、求倒数、退格和清零功能。 课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通 过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 认真按时完成课程设计报告,课程设计报告容包括:设计任务与要求、需求分析、 设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 2 需求分析 2.1 设计背景 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限 制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他 的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运 算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦( cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以 及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单, 代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 2.2 开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成 。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负 数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算, 还有求倒数、退格和清零功能。 3 设计思路 、本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout边缘布局,将单行文本框加入到"North"区域,包含各种按钮的面板 JPanel p加入到"Center"区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加 到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); 、事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件("0","1" ,"2"…"8","9")、运算符按钮事件("+","-","*","/","%")、正负号按钮事件 ("+/- ")、小数点按钮事件(".")、等号按钮事件("=")、求倒按钮事件("求倒")、退 格按钮事件("退格")、清除按钮事件("C") 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数 (pow)、对e的指数(exp)、对数运算(log)。 、在事件处理,触发按钮事件时,先判断是或是数字是或是"- /+"是或是".",是的话就将负号"-" 、数字、小数点"."分别写入文本框并存放在sum中,然后判断是或是"退格"、"求倒"等 ,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放 在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件 还是计算中间触发的按钮事件。 、计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字 符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 、利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能 。 、利用文本框显示操作数和运算结果。 4 详细设计 4.1功能实现: 加减乘除求余以及指数运算 其他运算 、求平方根 、对数运算 、余弦运算 、正切运算 、e的指数运算 、倒数运算 主要方法说明 public cos(double x) //求x的余弦函数 public tan (double x) //求x的正切函数 public sqrt(double x) //求x的平方根 public log (double x) //求x的自然对数运算
Java Swing 是一个基于 Java 的 GUI 工具包,提供了许多组件和布局管理器,可以用来开发桌面应用程序。下面介绍两种 Java Swing 实现窗体添加背景图片的方法。 方法一:使用 JPanel 1.创建一个 JPanel 对象,并设置其布局管理器为 null。 2.在 JPanel 上绘制背景图片。 3.将 JPanel 添加到 JFrame 中。 示例代码: ``` import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.JPanel; public class BackgroundImage extends JFrame { private JPanel panel; private Image bgImage; public BackgroundImage() { setTitle("Java Swing Background Image"); setSize(500, 500); setDefaultCloseOperation(EXIT_ON_CLOSE); panel = new JPanel() { @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(bgImage, 0, 0, null); } }; panel.setLayout(null); bgImage = Toolkit.getDefaultToolkit().getImage("background.jpg"); add(panel); setVisible(true); } public static void main(String[] args) { new BackgroundImage(); } } ``` 方法二:使用 JDesktopPane 1.创建一个 JDesktopPane 对象,并将其设置为 JFrame 的内容面板。 2.创建一个 JInternalFrame 对象,并将其添加到 JDesktopPane 中。 3.在 JInternalFrame 中绘制背景图片。 示例代码: ``` import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; public class BackgroundImage extends JFrame { private JDesktopPane desktopPane; private JInternalFrame internalFrame; private Image bgImage; public BackgroundImage() { setTitle("Java Swing Background Image"); setSize(500, 500); setDefaultCloseOperation(EXIT_ON_CLOSE); desktopPane = new JDesktopPane(); setContentPane(desktopPane); internalFrame = new JInternalFrame("", false, false, false, false); internalFrame.setBounds(0, 0, getWidth(), getHeight()); desktopPane.add(internalFrame); internalFrame.setVisible(true); bgImage = Toolkit.getDefaultToolkit().getImage("background.jpg"); JPanel panel = new JPanel() { @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(bgImage, 0, 0, null); } }; internalFrame.add(panel); setVisible(true); } public static void main(String[] args) { new BackgroundImage(); } } ``` 以上两种方法都可以实现窗体添加背景图片,具体使用哪种方法取决于实际需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值