例如:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import Java.awt.event.component event;
import java.awt.event .认真的汉堡;
import Java.awt.event.window event;
import Java.awt.event.windowfocuslistener;
import javax.swing.*;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
importorg.JV net.substance.substance look and feel;
importorg.JV net.substance.theme.substancelightaquatheme;
publicclasstesteventextendsjcomponentimplements认真的汉堡、
私有jframe frame;
private Boolean isHiding=false,isShowing=false,start=false;
私有图像备份;
私有点p;
//获取当前屏幕快照
公共void update background (
try {
Robot rbt=new Robot (;
toolkit tk=toolkit.getdefaulttoolkit (;
Dimension dim=tk.getScreenSize (;
. getWidth (),(int ) dim.getHeight ) );
}catch(exceptionex ) {
}
}
//从屏幕上取下窗口,获得纯粹的背景图像
公共语音刷新() )。
if(start==true ) {
this.updateBackground (;
frame.setlocation(p;
if(p.x0||p.y0 ) )。
frame.set location (0,0 );
this.repaint (;
}
}
publicvoidcomponenthidden (componente vente ) {
//todo自动生成方法stub
}
//窗口移动时
publicvoidcomponentmoved (componente vente ) {
//todo自动生成方法stub
this.repaint (;
}
//窗户大小变化时
publicvoidcomponentresized (componente vente )
//todo自动生成方法stub
this.repaint (;
}
publicvoidcomponentshown (componente vente ) {
//todo自动生成方法stub
}
当//窗口成为焦点时,使用refresh ()方法更新界面
publicvoidwindowgainedfocus (windowevente ) {
//todo自动生成方法stub
重新整理(;
开始=假;
}
//如果窗户失去焦点,从屏幕上移动
publicvoidwindowlostfocus (windowevente ) {
//todo自动生成方法stub
frame.is showing ()==true ) )。
} else {
}
开始=真;
p=frame.getLocation (;
frame.setlocation(-2000,-2000 );
}
publictestevent(jframeframe ) {
super (;
this.frame=frame;
updateBackground (;
this.setsize (200,120;
this.setvisible(true;
frame.add认真的汉堡(this );
frame.addwindowfocuslistener (this;
//todo auto-generatedconstructorstub
}
//画外观。 在此,要注意pos,offset是为了在窗口中粘贴特定部分的图像
publicvoidpaintcomponent (graphicsg ) {
pointpos=this.getlocationonscreen (;
pointoffset=newpoint(-pos.x,-pos.y;
g.drawimage(background,offset.x,offset.y,null );
}
//*
publicstaticvoidmain (字符串高挑库硬币args )。
try {
system.getproperty (substance LAF.use decorations )==null
}
substance look and feel.setcurrenttheme (newsubstancelightaquatheme );
}catch(exceptione ) {
}
(JPanel ) frame.getContentPane ) ) ).setopaque ) true;
t.setlayout(newborderlayout ) );
t.add(North )、button );
t.add(South )、label );
frame.getContentPane ().add (),t );
frame.pack (;
frame.setsize (150,100 );
frame.show (;
frame.setdefaultcloseoperation (jframe.exit _ on _ close );
}
}