放图片 java_java怎么在我想要的图片上在放一个我想要的图片
展开全部
import javax.imageio.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.io.*;
import java.util.*;
/**
* @author Hardneedl
*/
final class PicDemo extends JFrame {
public String getTitle() {return "PicDemo";}
static private final Dimension size = new Dimension(600,400);
public Dimension getPreferredSize() {return size;}
public Dimension getMaximumSize() {return size;}
public Dimension getMinimumSize() {return size;}
public Dimension getSize(){return size;}
private interface Brush extends Observer{
void paint(Graphics g);
}
private class Canvas extends JComponent{
private Brush b;
private Observable observable=new Observable(){
public void notifyObservers(Object arg) {
setChanged();
super.notifyObservers(arg);
}
};
void setBrush(Brush b){
this.b=b;
observable.deleteObservers();
observable.addObserver(b);
if(isVisible())repaint();
}
private Canvas() {
addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
observable.notifyObservers(e.getPoint());
repaint();
}
});
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(b!32313133353236313431303231363533e78988e69d8331333332623931=null)b.paint(g);
}
}
private class ImageBrush implements Brush{
private boolean drawTilEnabled;
private Image mainImg,til;
private Point p=new Point();
private void setTil(Image til) {this.til = til;}
private void setMainImg(Image mainImg) {this.mainImg = mainImg;}
public void paint(Graphics g) {
Graphics2D g2= (Graphics2D) g.create();
g2.drawImage(mainImg,0,0,null);
if(drawTilEnabled)
g2.drawImage(til, AffineTransform.getTranslateInstance(p.x-(til.getWidth(null)>>1), p.y-(til.getHeight(null)>>1)),null);
g2.dispose();
}
public void update(Observable o, Object arg) {
if(arg instanceof Point){
drawTilEnabled=true;
p.setLocation((Point) arg);
}
}
}
private Canvas canvas;
PicDemo() throws HeadlessException {
init();
attachListeners();
doLay();
}
private void init(){
canvas=new Canvas();
ImageBrush brush=new ImageBrush();
try {
brush.setMainImg(ImageIO.read(new File("b.png")));
brush.setTil(ImageIO.read(new File("unknown.png")));
} catch (IOException e) {
e.printStackTrace();
}
canvas.setBrush(brush);
}
private void attachListeners(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void doLay(){
final Container container = getContentPane();
container.add(canvas,BorderLayout.CENTER);
pack();
setVisible(true);
}
public static void main(String...args) {
System.setProperty("swing.defaultlaf","com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.invokeLater(
new Runnable(){
public void run() {
new PicDemo();
}
}
);
}
}
放图片 java_java怎么在我想要的图片上在放一个我想要的图片相关推荐
- 计算机自带音乐怎么放,絮叨絮叨:如何在新浪博客上,放自己电脑里的音乐。...
前言:(注意,情况正在起变化,解决方案请参见本文后记,本后记会不定时更新) 最近闲的没事也倒腾倒腾博客的各种功能,发现这个"音乐播放器"有诸多不便,很多歌曲它搜不到(比如大鼓.单弦 ...
- jquery file upload 限制上传文件的格式、大小或图片尺寸
限制文件格式.大小 $("#head").fileupload({url: "/front/user/uploadHead",dataType: 'json', ...
- python opencv 实现从一个文件夹中读取图片做切割处理后放入另一个文件夹
python opencv 实现从一个文件夹中读取图片切割处理后放入另一个文件夹. 实现的功能是把一个文件夹里的图片作处理,即把原图片中心为起点切割成1536*1536的图片,原图片必须大于这个的大小 ...
- 微信公众平台 图片 java_Java微信公众平台之素材管理
微信素材管理和群发这块文档对Java很不友好.本文只对新增临时素材,新增永久素材做介绍,其余获取.删除.修改自行补充 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时, ...
- word转图片 java_Java 利用LibreOffice将Office文档转换成 PDF,进而转图片,实现在线预览功能...
项目中需要将 Office 文档上传并实现在线预览,用到了 LibreOffice 将 Office 文档转换为 PDF 文档,然后再用 pdfbox 将 PDF 转为图片. 本文介绍借助 Libre ...
- Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)
列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...
- 【React组件】写一个模仿蓝湖的图片查看器
前言 最近公司让写一个可以自由拖拽放大的图片查看器,我寻思这还不简单,一顿操作猛如虎,俩小时后: 事实证明,一旦涉及到 DOM 的变换操作,如果很多细节考虑不全,抓过来就写,那基本就凉了.于是我仔细分 ...
- 一个Ext2+SWFUpload做的图片上传对话框
一个Ext2+SWFUpload做的图片上传对话框的例程 我们先看看对话框的布局: 布局就是在一个窗口里内嵌一个表格控件,窗口的底部工具条带一个进度条,表格的顶部工具条带几个操作按钮和一个下来选择框, ...
- 图片跟着鼠标_刷完几百张网易云Banner,我发现了2个PPT图片处理的大招!
大家好,这里是 和秋叶一起学PPT~ 想必大家在学习 PPT 的道路上都或多或少,或坚持或佛系地收集过网易云音乐 Banner,更何况网易云音乐 Banner 常看常新,紧跟时下热点,简直不要太棒! ...
- asp.net中使用Uploadify插件实现多张图片上传,上传后可显示缩略图、删除图片
本文为原创文章,欢迎转载!转载时请注明出处:http://blog.csdn.net/c_yang13 一.准备工具 1.jquery,我使用的是jquery-1.11.3.min.js 2.uplo ...
最新文章
- DL练习1:基于boston_house_prices的BP神经网络
- HOOK技术-满足我们程序的偷窥欲
- OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
- 2021年5月信息系统项目管理师案例分析真题+视频讲解(1)
- One Order行项目里Item Category是怎么计算出来的
- 乔恩与加菲猫引发的思考
- 前端学习(1367):什么是中间件
- java学习(74):GUL面板
- KEIL MDK access violation at 0x40021000 : no ‘read‘ permission的一种解决方法
- apk部分手机安装失败_3关于Apk安装失败问题的解决方法
- ArcPAD 10系统要求
- 微信小程序阻止事件冒泡【看这里】
- C++ Reference: Standard C++ Library reference: C Library: cstdlib: atoll
- TIA protal与SCL从入门到精通(2)——EN/ENO 机制
- 51单片机教程(从原理开始基于汇编)
- java计算机毕业设计科普网站源码+mysql数据库+系统+lw文档+部署
- 瘦臀瘦腿的最快方法是什么?
- iptable 笔记
- 鸿蒙系统首先预装华为的什么手机,首款预装鸿蒙系统的华为手机来了,不是P50,而是一款4G机型...
- 因《乔布斯传》而开发的XC3566
热门文章
- mysql的操作语句_Mysql最常用的操作语句收集
- 云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...
- 分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件
- 【youcans 的 OpenCV 例程 200 篇】120. 击中-击不中变换
- php tls,使用TLS在PHP中建立连接
- java执行class找不到main函数_你所不知道的HelloWorld背后的执行原理
- 360浏览器广告太多怎么办_360浏览器如何关闭广告自动推送
- css 动态生成圆形区域内扇形个数_CSS实用技巧总结
- php获取数组中的全部可以吗,php获取数组中所有值的方法
- Python之日志处理(logging模块)详解