社区
Java SE
帖子详情
Graphics 的 drawImage() 为什么有时画不出来?
u010116554
2014-12-23 12:00:50
上面这个程序中g.drawImage可以画出桌面
但是程序改成这样就画不出来了
这是怎么回事?
...全文
471
3
打赏
收藏
Graphics 的 drawImage() 为什么有时画不出来?
上面这个程序中g.drawImage可以画出桌面 但是程序改成这样就画不出来了 这是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
u010116554
2014-12-23
打赏
举报
回复
在第二个程序中 导入 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 以下就又画不出来了,这是怎么回事?
u010116554
2014-12-23
打赏
举报
回复
第二个: 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); } }
u010116554
2014-12-23
打赏
举报
回复
第一个: 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); }*/ }
窗体中显示动
画
(源码)
本程序演示了如何在窗体中显示动
画
,效果不错。。。
winform通过双缓存绘
画
五彩方块
实现了不通过爽缓冲和通过双缓冲两种功能绘
画
五彩方块,可以很明显的看出双缓冲的效果更高更平滑
取图象数据透明化
画
到
画
板.rar
取图象数据透明化
画
到
画
板.rar
Java双缓冲技术Java双缓冲技术
Java双缓冲技术Java双缓冲技术Java双缓冲技术Java双缓冲技术
vs2010 C# 自己
画
TreeView的Node(可以
画
颜色的哦)
vs2010上自己
画
Treeview的节点,
画
的时候可以自己设置颜色。
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章