java 重写paint_java笔记 重写paintComponent方法以实现jPanel加背景
N年不用java写图形界面,但想了想,在点击事件中给上边图形重绘的方法重新来一遍应该可行。代码如下:
package com.yimik.test.swing;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BackgroundTest extends JFrame{
private static final long serialVersionUID = 1L;
private JButton b;
private JPanel p ;
public BackgroundTest() {
p = new MyPanel();
p.setBounds(0, 0, 500,200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(500, 500);
this.setVisible(true);
this.setLayout(null);
this.add(p);
b = new JButton("点击换背景");
b.setBounds(0, 300, 100, 30);
this.add(b);
b.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
ImageIcon image=new ImageIcon(getClass().getResource("/imgs/img2.jpg"));
image.setImage(image.getImage().getScaledInstance(p.getWidth(),p.getHeight(),Image.SCALE_FAST));
image.paintIcon(p, p.getGraphics(),0, 0);
}
});
}
public static void main(String[] args) {
new BackgroundTest();
}
}
class MyPanel extends JPanel{
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics g){//重写paintComponent方法以实现jPanel加背景
super.paintComponent(g);
ImageIcon image=new ImageIcon(getClass().getResource("/imgs/img1.jpg")); //获取图像
image.setImage(image.getImage().getScaledInstance(this.getWidth(),this.getHeight(),Image.SCALE_FAST)); //调整图像的分辨率以适应容器
image.paintIcon(this, g,0, 0);
}
}
java 重写paint_java笔记 重写paintComponent方法以实现jPanel加背景相关推荐
- java中paint方法和paintComponent方法的不同
/*1.由Component.java源代码中可以看见其中的paint()方法体是空的,在Container中重写了该方法,其子类Window等也重写了该方法2.由JComponent.java源代码 ...
- Java基础入门笔记-重写
首先是HelloWorld.java package my;public class HelloWorld {public static void main(String[] args){ Stude ...
- Java核心类笔记(字符串方法、StringBuilder(Joiner)、包装、JavaBean、枚举、Math、随机数)
String字符串注意点和常用方法 怎样理解字符串的不可变性? 在Java中,String是通过private final char[]实现的,没有任何修改char[]的方法,所以是不可变的. 在字符 ...
- java实现安全卡模块,一种Java卡防火墙漏洞的检测方法和装置的制造方法
一种Java卡防火墙漏洞的检测方法和装置的制造方法 [技术领域] [0001]本发明涉及智能卡领域,尤其涉及智能卡领域中的一种Java卡防火墙漏洞的检测方法和装置. [背景技术] [0002]Java ...
- Java拾遗:001 - 重写 equals 和 hashCode 方法
2019独角兽企业重金招聘Python工程师标准>>> 重写equals方法 在Java中Object类是一个具体类,但它设计的主要目的是为了扩展,所以它的所有非final方法,都被 ...
- 重写Java Object类中的equals()方法
Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...
- java重写6,java重写equals()方法和hashCode()方法
1.equals()方法和hashCode()方法是什么? equals()和hashCode()都是是Java中万物之源Object类中的方法: equals方法用于比较两个对象是否相同,Objec ...
- java重写的代码_java tostring方法重写代码示例
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法 默认情况下 System.out.printl ...
- JAVA正确地自定义比较对象---如何重写equals方法和hashCode方法
在实际应用中经常会比较两个对象是否相等,比如下面的Address类,它有两个属性:String province 和 String city. public class Address {privat ...
最新文章
- 活动报名 | “认知神经科学”助力人工智能突围的方法路径
- IccFileHandler和IccRecords
- angularjs 中的scope继承关系——(2)
- 自己做回CA 给别人发证
- SAP HANA简介
- 挨踢脱口秀精选集汇总
- 了解一下C++输入和输出的概念
- ci 地址去掉index.php,CI框架如何删除地址栏的 index.php
- 二叉树小球下落问题c语言,#C++初学记录(树和二叉树)
- Spring @AutoWired实现原理
- soundpool android,android – 如何获取Soundpool的持续时间
- 「总结」最全2万字长文解读7大方向人脸数据集v2.0版
- 华为防火墙安全区域介绍及配置
- dpi、ppi、apm是什么
- 【线性代数笔记】矩阵的特征值和特征向量在哪些变换过程中变化?
- 利用Exchange服务同步iOS和android中的联系人
- IOS微信浏览器input输入账号键盘闪烁
- ISTQB认证-关于ISTQB一些知识点总结
- wireshark源码分析二
- 2019年计算机网络管理员大赛,【重磅】信息工程学院代表队入围2019年中国高校计算机大赛网络技术挑战赛晋级赛...
热门文章
- ajax c 提交form,使用ajax提交form表单,包括ajax文件上传
- php 抓取https请求数据,PHP + curl 实现 http 或 https 抓取数据:
- c语言拟合线性直线误差最小,急~~~~~~!!!求解!用C语言编写最小二乘法求数据的拟合曲线~并做出图显示拟合效果!高分悬赏!...
- java md5加密32位小写_Java生成MD5的方法,简单封装并转为32位小写
- Python基础教程:内置类型之数值
- Python高阶函数用法
- java安全例外_java – 本地Applet安全例外
- mysql 自后向前截取函数_【转载】Sqlserver使用Right函数从最右边向前截取固定长度字符串...
- mysql语句的执行顺序_SQL语句完整的执行顺序(02)
- 我的2020电视机选购