放图片 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怎么在我想要的图片上在放一个我想要的图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸿蒙日程管理若离,2020华为HDC日程
- 下一篇: 什么叫大地高_什么才叫睡得好?睡觉能满足