public class ImagePanel extends JPanel
{
private Image img;
public ImagePanel(Image img)
{
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setSize(size);
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setLayout(null);
}
protected void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0, null);
}
}已经可以显示图片了,但是我不能理解为什么加了一个Image成员变量,然后重写了paintComponent()方法
就可以了?我猜测关键在于Graphics对象是如何传递的?求解释JavaSwingImage
{
private Image img;
public ImagePanel(Image img)
{
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setSize(size);
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setLayout(null);
}
protected void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0, null);
}
}已经可以显示图片了,但是我不能理解为什么加了一个Image成员变量,然后重写了paintComponent()方法
就可以了?我猜测关键在于Graphics对象是如何传递的?求解释JavaSwingImage
解决方案 »
- 关于JButton的问题
- 关于JTextArea的换行问题(解决问题立刻结贴)
- 有个叫良葛格读书笔记的听过?没
- jsp
- 在执行 invoke 方法的时候报 InvocationTargetException 异常
- 我在按钮监听器中 事例了一个连接库的操作,在操作库的过程中想把一些结果 显示到JTextArea ,但是..
- 关于HashMap的排序
- 加载jdbc驱动抛出ClassNotFoundException
- 读excel的问题,在线等...
- javamail附件中文名的奇怪问题(不是iso8859 -> gb2312那么简单哦)!!
- java小程序,帮忙看看怎么改
- java联机小游戏,做了一半,socket没学,联机不怎么会,求指导一个玩家控制点,一个玩家控制蛇,在电脑的局域网实现
{
g.drawImage(img, 0, 0, null);
}
对啊,我自己的理解也是系统传进来的,但是我不清楚其中的过程,能不能分析一下过程,或者给一些书名和链接也可以。不清楚其中的Graphics是从哪里来的。如果我没有包含一个Image成员变量,那么他的Graphics又是从哪里来的呢?
JAVA Swing只有两种方法可以获取Graphics对象
一种是继承swing组件的paint或者paintComponent方法
另外一种方法是从图像对象中创建BufferedImage.createGraphic()其他你不可能获取到Graphics接口对象。另外一个更重要是
从图像创建Graphics,使用完之后要调用dispose方法销毁。