展开全部

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怎么在我想要的图片上在放一个我想要的图片相关推荐

  1. 计算机自带音乐怎么放,絮叨絮叨:如何在新浪博客上,放自己电脑里的音乐。...

    前言:(注意,情况正在起变化,解决方案请参见本文后记,本后记会不定时更新) 最近闲的没事也倒腾倒腾博客的各种功能,发现这个"音乐播放器"有诸多不便,很多歌曲它搜不到(比如大鼓.单弦 ...

  2. jquery file upload 限制上传文件的格式、大小或图片尺寸

    限制文件格式.大小 $("#head").fileupload({url: "/front/user/uploadHead",dataType: 'json', ...

  3. python opencv 实现从一个文件夹中读取图片做切割处理后放入另一个文件夹

    python opencv 实现从一个文件夹中读取图片切割处理后放入另一个文件夹. 实现的功能是把一个文件夹里的图片作处理,即把原图片中心为起点切割成1536*1536的图片,原图片必须大于这个的大小 ...

  4. 微信公众平台 图片 java_Java微信公众平台之素材管理

    微信素材管理和群发这块文档对Java很不友好.本文只对新增临时素材,新增永久素材做介绍,其余获取.删除.修改自行补充 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时, ...

  5. word转图片 java_Java 利用LibreOffice将Office文档转换成 PDF,进而转图片,实现在线预览功能...

    项目中需要将 Office 文档上传并实现在线预览,用到了 LibreOffice 将 Office 文档转换为 PDF 文档,然后再用 pdfbox 将 PDF 转为图片. 本文介绍借助 Libre ...

  6. Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)

    列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...

  7. 【React组件】写一个模仿蓝湖的图片查看器

    前言 最近公司让写一个可以自由拖拽放大的图片查看器,我寻思这还不简单,一顿操作猛如虎,俩小时后: 事实证明,一旦涉及到 DOM 的变换操作,如果很多细节考虑不全,抓过来就写,那基本就凉了.于是我仔细分 ...

  8. 一个Ext2+SWFUpload做的图片上传对话框

    一个Ext2+SWFUpload做的图片上传对话框的例程 我们先看看对话框的布局: 布局就是在一个窗口里内嵌一个表格控件,窗口的底部工具条带一个进度条,表格的顶部工具条带几个操作按钮和一个下来选择框, ...

  9. 图片跟着鼠标_刷完几百张网易云Banner,我发现了2个PPT图片处理的大招!

    大家好,这里是 和秋叶一起学PPT~ 想必大家在学习 PPT 的道路上都或多或少,或坚持或佛系地收集过网易云音乐 Banner,更何况网易云音乐 Banner 常看常新,紧跟时下热点,简直不要太棒! ...

  10. asp.net中使用Uploadify插件实现多张图片上传,上传后可显示缩略图、删除图片

    本文为原创文章,欢迎转载!转载时请注明出处:http://blog.csdn.net/c_yang13 一.准备工具 1.jquery,我使用的是jquery-1.11.3.min.js 2.uplo ...

最新文章

  1. DL练习1:基于boston_house_prices的BP神经网络
  2. HOOK技术-满足我们程序的偷窥欲
  3. OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
  4. 2021年5月信息系统项目管理师案例分析真题+视频讲解(1)
  5. One Order行项目里Item Category是怎么计算出来的
  6. 乔恩与加菲猫引发的思考
  7. 前端学习(1367):什么是中间件
  8. java学习(74):GUL面板
  9. KEIL MDK access violation at 0x40021000 : no ‘read‘ permission的一种解决方法
  10. apk部分手机安装失败_3关于Apk安装失败问题的解决方法
  11. ArcPAD 10系统要求
  12. 微信小程序阻止事件冒泡【看这里】
  13. C++ Reference: Standard C++ Library reference: C Library: cstdlib: atoll
  14. TIA protal与SCL从入门到精通(2)——EN/ENO 机制
  15. 51单片机教程(从原理开始基于汇编)
  16. java计算机毕业设计科普网站源码+mysql数据库+系统+lw文档+部署
  17. 瘦臀瘦腿的最快方法是什么?
  18. iptable 笔记
  19. 鸿蒙系统首先预装华为的什么手机,首款预装鸿蒙系统的华为手机来了,不是P50,而是一款4G机型...
  20. 因《乔布斯传》而开发的XC3566

热门文章

  1. mysql的操作语句_Mysql最常用的操作语句收集
  2. 云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...
  3. 分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件
  4. 【youcans 的 OpenCV 例程 200 篇】120. 击中-击不中变换
  5. php tls,使用TLS在PHP中建立连接
  6. java执行class找不到main函数_你所不知道的HelloWorld背后的执行原理
  7. 360浏览器广告太多怎么办_360浏览器如何关闭广告自动推送
  8. css 动态生成圆形区域内扇形个数_CSS实用技巧总结
  9. php获取数组中的全部可以吗,php获取数组中所有值的方法
  10. Python之日志处理(logging模块)详解