JPanel加载图像的过程
来源:互联网 发布:软件项目工作汇报ppt 编辑:程序博客网 时间:2024/05/17 02:41
要在JPanel上显示图像,调用了哪几个关键的类方法? 经过Debug,总结如下:
无论选择按钮或菜单来触发事件,打开图像文件
分别调用的方法依次是
按钮或菜单的事件处理方法(ButtonOpen_mouseClicked())->
自定义的加载方法(loadMyImage()) ->
Graphics对象的drawImage()->
JPanel的imageUpdate() ->
JPanel的repaint()
以下代码仅是示例,不完全
void ButtonOpen_mouseClicked(MouseEvent e) {
panel.loadChemImg(imageFile.getAbsolutePath());
}
public void loadMyImage(String s) {
originalImage = Toolkit.getDefaultToolkit().getImage(s);
if (ibuff == null) {
init_buff();
}
buffgra.drawImage(originalImage, 0, 0, this);
//这里会调用imageUpdate()
}
public boolean imageUpdate(Image originalImage, int flags, int x, int y, int w, int h) {
Color col;
if (flags == ImageObserver.ALLBITS) {
col = buffgra.getColor();
buffgra.setColor(Color.white);
buffgra.fillRect(0, 0, getWidth(), getHeight());
buffgra.drawImage(originalImage, 0, 0, this);
buffgra.setColor(col);
repaint();
//完全加载后返回false,防止再次调用
return false;
}
return true;
}
无论选择按钮或菜单来触发事件,打开图像文件
分别调用的方法依次是
按钮或菜单的事件处理方法(ButtonOpen_mouseClicked())->
自定义的加载方法(loadMyImage()) ->
Graphics对象的drawImage()->
JPanel的imageUpdate() ->
JPanel的repaint()
以下代码仅是示例,不完全
void ButtonOpen_mouseClicked(MouseEvent e) {
panel.loadChemImg(imageFile.getAbsolutePath());
}
public void loadMyImage(String s) {
originalImage = Toolkit.getDefaultToolkit().getImage(s);
if (ibuff == null) {
init_buff();
}
buffgra.drawImage(originalImage, 0, 0, this);
//这里会调用imageUpdate()
}
public boolean imageUpdate(Image originalImage, int flags, int x, int y, int w, int h) {
Color col;
if (flags == ImageObserver.ALLBITS) {
col = buffgra.getColor();
buffgra.setColor(Color.white);
buffgra.fillRect(0, 0, getWidth(), getHeight());
buffgra.drawImage(originalImage, 0, 0, this);
buffgra.setColor(col);
repaint();
//完全加载后返回false,防止再次调用
return false;
}
return true;
}
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- JPanel加载图像的过程
- 图片存入数据库的问题
- 采访Indy和IntraWeb组件的主要开发者 Chad “Kudzu” Hower
- Anders Hejlsberg谈C#设计过程
- List和string之间的互相转换
- C++数组应用之特殊矩阵的压缩存储
- JPanel加载图像的过程
- 深入解析ATL第二版(ATL8.0)笔记--(2.3节)
- 深入解析ATL(第二版ATL8.0)(2.1-2.2节)
- 深入解析ATL(第二版ATL8.0)(1.11-1.13节)
- 连接PHP和 Java -- PHP/Java Bridge [3]
- 深入解析ATL(第二版ATL8.0)(1.8-1.10节)
- Squid中文权威指南 第一章(介绍)
- 深入解析ATL(第二版ATL8.0)(1.4-1.7节)
- 深入解析ATL(第二版ATL8.0)(1.1-1.3节)