第一个:import javax.swing.JFrame;
import java.awt.Image;
import java.awt.Robot; //(自动)机器人类,本程序用于截屏
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Rectangle;import java.awt.Graphics;public class L{
public static void main(String[] args){
new Sub_JFrame().setVisible(true);
/*Sub_JFrame sj = new Sub_JFrame();
sj.setVisible(true);
sj.draw();*/
}
}class Sub_JFrame extends JFrame{
Image desktop;
Dimension size;
Sub_JFrame(){
this.init();
}
private void init(){
this.setUndecorated(true); //设置未装饰 —— 无边框外饰
this.setExtendedState(JFrame.MAXIMIZED_BOTH); //设置扩展状态 —— 横纵双向最大化
size = Toolkit.getDefaultToolkit().getScreenSize(); //获取屏幕尺寸
try{ //捕获屏幕(截屏)
desktop = new Robot().createScreenCapture(new Rectangle(0,0,(int)size.getWidth(),(int)size.getHeight()));
}catch(Exception e){
e.printStackTrace();
}
this.setDefaultCloseOperation(Sub_JFrame.DISPOSE_ON_CLOSE);
//正常关闭程序,
}
public void paint(Graphics g){
g.drawImage(desktop,0,0,null);
}
/*public void draw(){
Graphics g = this.getGraphics();
g.drawImage(desktop,0,0,null);
}*/
}
import java.awt.Image;
import java.awt.Robot; //(自动)机器人类,本程序用于截屏
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Rectangle;import java.awt.Graphics;public class L{
public static void main(String[] args){
new Sub_JFrame().setVisible(true);
/*Sub_JFrame sj = new Sub_JFrame();
sj.setVisible(true);
sj.draw();*/
}
}class Sub_JFrame extends JFrame{
Image desktop;
Dimension size;
Sub_JFrame(){
this.init();
}
private void init(){
this.setUndecorated(true); //设置未装饰 —— 无边框外饰
this.setExtendedState(JFrame.MAXIMIZED_BOTH); //设置扩展状态 —— 横纵双向最大化
size = Toolkit.getDefaultToolkit().getScreenSize(); //获取屏幕尺寸
try{ //捕获屏幕(截屏)
desktop = new Robot().createScreenCapture(new Rectangle(0,0,(int)size.getWidth(),(int)size.getHeight()));
}catch(Exception e){
e.printStackTrace();
}
this.setDefaultCloseOperation(Sub_JFrame.DISPOSE_ON_CLOSE);
//正常关闭程序,
}
public void paint(Graphics g){
g.drawImage(desktop,0,0,null);
}
/*public void draw(){
Graphics g = this.getGraphics();
g.drawImage(desktop,0,0,null);
}*/
}
import javax.swing.JFrame;
import java.awt.Image;
import java.awt.Robot; //(自动)机器人类,本程序用于截屏
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Rectangle;import java.awt.Graphics;public class L{
public static void main(String[] args){
//new Sub_JFrame().setVisible(true);
Sub_JFrame sj = new Sub_JFrame();
sj.setVisible(true);
sj.draw();
}
}class Sub_JFrame extends JFrame{
Image desktop;
Dimension size;
Sub_JFrame(){
this.init();
}
private void init(){
this.setUndecorated(true); //设置未装饰 —— 无边框外饰
this.setExtendedState(JFrame.MAXIMIZED_BOTH); //设置扩展状态 —— 横纵双向最大化
size = Toolkit.getDefaultToolkit().getScreenSize(); //获取屏幕尺寸
try{ //捕获屏幕(截屏)
desktop = new Robot().createScreenCapture(new Rectangle(0,0,(int)size.getWidth(),(int)size.getHeight()));
}catch(Exception e){
e.printStackTrace();
}
this.setDefaultCloseOperation(Sub_JFrame.DISPOSE_ON_CLOSE);
//正常关闭程序,
}
/*public void paint(Graphics g){
g.drawImage(desktop,0,0,null);
}*/
public void draw(){
Graphics g = this.getGraphics();
g.drawImage(desktop,0,0,null);
}
}
import java.lang.Thread;再把 Sub_JFrame 的 draw 方法改成 public void draw(){
Graphics g = this.getGraphics();
try{
Thread.sleep(53);
}catch(Exception e){
e.printStackTrace();
}
g.drawOval(0,0,100,100);
g.drawImage(desktop,0,0,null);
}就是加个延时,又能画出来了,这是怎么回事?那个 53延时 是最小的延时,再小改成 52 以下就又画不出来了,这是怎么回事?