放图片 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();

}

}

);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ext-ajax请求数据

Ext.Ajax.request({url: webPath/news/newsEastmoneyList,method: POST,success: function (response, options) {var data Ext.decode(response.responseText);if(data.success){list.getStore().load({page:1});Ext.Msg.alert(提示,提取成功,共提取data.zg条.);}…

java .net des_DES加密解密 JAVA与.NET互通程序代码

JAVA版本import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.IvParameterSpec;public class Des {private byte[] desKey;//解密数据public static String decryp…

linux 查找文件或者服务

[rootlocalhost ~]# whereis mysql mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz [rootlocalhost ~]# which mysql /usr/bin/mysql转载于:https://www.cnblogs.com/adolfmc/p/4749224.html

android java 调用js_android WebApp 集成方式怎么使用java调用js

WebAPP集成,本地打包,有两种方式java js通信1.DCloud插件模式,参考SDK DEMO的H5Plugin,Java:继承StandardFeature写接口。public class DBControlPlugin extends StandardFeature{public void PluginTestFunction(IWebview pWebvi…

Android SurfaceView实现静态于动态画图效果

本文是基于Android的SurfaceView的动态画图效果,实现静态和动态下的正弦波画图,可作为自己做图的简单参考,废话不多说,先上图, 静态效果: 动态效果: 比较简单,代码注释的也比较详细&…

java ip调天气预报接口_JAVA + WeatherWebService 实现天气预报接口调取

两步完成接口调取第一步:引入jar包若在线jar包失效,私信我即可。第二步:创建类实现在JAVA项目中创建java类(我的是:WeatherUtil)修改类中cityid为你需要展示的地区id,我的是上海的【cityid查询】WeatherUtil类代码:imp…

数学概念——J - 数论,质因数分解

J - 数论,质因数分解Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit StatusDescription Tomorrow is contest day, Are you all ready? We have been training for 45 days, and all guys must be tired.But , you are…

java map集合排序的_Java对Map集合进行排序

Java对Map集合进行排序实现 Comparator 接口,重写compare方法,完成自定义排序int compare(Object o1, Object o2) 返回一个基本类型的整型如果要按照升序排序,则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)…

java黄金分割点游戏_结对编程1——黄金点小游戏项目简介及需求分析

一、项目成员2018141461085龚泽楠2018141461012蔡铧荣二、项目名称黄金点小游戏三、项目简介游戏规则: N个同学( N通常大于 10 ),每人写一个 0~100 之间的有理数 (不包括 0或100) ,交给裁判算出所有数字的平均值然后乘以 0.618 (所谓黄金分割…

STL泛型算法总结

泛型算法只是依赖于迭代器的操作,而不是依赖于容器 泛型算法可以分为3大类: 下面的vec和vec2代表相同类型的容器 1.只读算法:只允许读取其输入范围内的元素,而不改变元素 find(vec.cbegin(),vec.cend(),k) 查找算法:前…

java x锁_基于Java名称的锁?

MySQL具有方便的功能:SELECT GET_LOCK("SomeName")这可用于为应用程序创建简单但非常具体的基于名称的锁。但是,它需要数据库连接。我有很多情况,例如:someMethod() {// do stuff to user A for their data for feature…

HDU 2242 考研路茫茫——空调教室

考研路茫茫——空调教室 Time Limit: 2000msMemory Limit: 32768KBThis problem will be judged on HDU. Original ID: 224264-bit integer IO format: %I64d Java class name: Main众所周知,HDU的考研教室是没有空调的,于是就苦了不少不去图书馆的…

如何查看现有项目的struts和hibernate和spring版本

1. struts的版本信息 查看 struts.jar\META-INF\MANIFEST.MF再查看 Implementation-Version看后面的数字.. Manifest-Version: 1.0Specification-Title: Struts FrameworkClass-Path: commons-beanutils.jar commons-collections.jar commons-dig ester.jar commons-fileuploa…

java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...

上一个礼拜太忙了,今天开始恢复java的学习~目录1、面向过程——面向对象的区别传统的面向过程式编程是动作驱动的,数据和动作是分离的。面向对象编程的范式重点在于对象,动作和数据一起定义在对象中。面向过程的范式重点在于设计方法。面向对…

html5学习之路_003

html布局 使用<div>元素布局使用<table>元素布局<div>元素布局 <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>div布局</title><link rel"stylesheet" type&qu…

计算机二级 java和web_2020年全国计算机二级WEB程序复习知识点:JavaBean

【摘要】即将参加全国计算机等级考试的考生们&#xff0c;考试即将到来&#xff0c;大家的备考工作进行得如何了&#xff1f;考必过为大家精心整理了2020年全国计算机二级WEB程序复习知识点&#xff1a;JavaBean&#xff0c;希望能够助力全国计算机等级考试&#xff0c;相信坚持…

java表达式语句_Java基础知识笔记第三章:运算符表达式语句

算术运算符与表达式操作符描述例子加法 - 相加运算符两侧的值A B 等于 30-减法 - 左操作数减去右操作数A – B 等于 -10*乘法 - 相乘操作符两侧的值A * B等于200/除法 - 左操作数除以右操作数B / A等于2&#xff05;取余 - 左操作数除以右操作数的余数B%A等于0自增: 操作数的值…

JavaScript_Util_01

//记住细节往往能让自己更有效率。定义变量&#xff0c;打冒号//XML文档空格bug补救方案function cleanWhiteSpace(element){elementelement||document;var cur element.firstChild;while(cur ! null){ //如果是文本节点&#xff0c;并且只包含空格if(cur.nodeType 3 &&a…

java简单创建图片面板_图像界面编程简单窗体创建

/** 图像界面编程* JFrame 窗体* JPanel 面板* JLabel 标签* JButton 按钮* JLabel 标签* ImageIcon 图标*** */package fish;import java.util.*;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax…

变量不合法的表达式JAVA_Java8中lambda表达式的语法,别人都会的,你还不会吗?「一」...

函数式编程函数式编程是一种编程方式&#xff0c;它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus)&#xff0c;λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 函数式编程是"结构化编程"的一种&#xff0c;主要思想是把运…