书上说用Image image = ImageIO.read(new File(filename));
Graphics g = image.getGraphics();
g.drawImage(image, x,y,null);可是执行Graphics g = image.getGraphics()总是返回空指针。为什么?(filename是正确的)另:在Graphics.drawImage 在JAPPLET,JFRAME,JPANEL上是不是都能绘制出图像?
Graphics g = image.getGraphics();
g.drawImage(image, x,y,null);可是执行Graphics g = image.getGraphics()总是返回空指针。为什么?(filename是正确的)另:在Graphics.drawImage 在JAPPLET,JFRAME,JPANEL上是不是都能绘制出图像?
Image image = ImageIO.read(new File(filename));
Graphics g = image.getGraphics();
Graphics2D comp2D = (Graphics2D)g;
comp2D.drawImage(image,new AffineTransform(1f,0f,0f,1f,0,0), null);
另:Graphics2D.drawImage在Jlabel上面都可以画,我想上述的几个都可以吧。
问题是,在转换之前,Graphics g = image.getGraphics() 已经是空指针出错了to: Jhala_Main
用getDocumentBase也返回空指针错误.这是表示图片不存在吗?可图片的确是有的to: Beatles_The
我用了双斜杠的.JBuilder里单斜杠无法通过编译的
附代码如下:import java.awt.*;
import javax.imageio.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;class ImageTest extends JApplet{
public ImageTest() {
Image image = null;
try {
image = ImageIO.read(new File("c:\\aa.bmp")); } catch (IOException ex) {
System.out.println("Exception");
}
//image=getImage(getDocumentBase(),"c:\\aa.bmp");
System.out.println("No Exception");
Graphics g = image.getGraphics();
g.drawImage(image, 0, 0, null);
} public static void main(String[] args) {
ImageTest imageTest = new ImageTest();
run(imageTest,0,0);
} public static void run(JApplet applet, int width, int height){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(applet);
frame.setSize(width, height);
applet.init();
applet.start();
frame.setVisible(true);
}
}
返回信息:
java.lang.NullPointerException
at ImageTest.<init>(ImageTest.java:19)
at ImageTest.main(ImageTest.java:24)
No Exception
c:\aa.bmp是存在的,返回No Exception表示获取图片没有错误吧?为什么又会返回空指针呢?
若用getDocumentBase则返回错误
java.lang.NullPointerException
at java.applet.Applet.getDocumentBase(Applet.java:125)
at ImageTest.<init>(ImageTest.java:17)
at ImageTest.main(ImageTest.java:24)
Exception in thread "main"
结果大同小异请大家帮我找找原因
分数丢在地上都没人捡么?
或者,谁有显示本地图片的相关代码贴一段出来参考也好啊
继承JApplet却没有init()或start()入口函数,
却有构造函数和main()函数?在JApplet上绘画:
应在paint(Graphics g)中写画图程序体.
然后用repaint()调用.
public void init()
{
repaint();
}
public void paint(Graphics g)
{
Image image=Toolkit.getDefaultToolkit().getImage("picture/logo.jpg")
g.drawImage(image, x,y,null);
}而在JFrame上绘画,需要先调用画布类:
java.awt.Canvas
先用一个类继承它,重载其paint(Graphics g)方法.
然后创建它的对象调用.
我曾经用image=getImage(getDocumentBase(),"filename");打开图片。但是每次都是失败的。调试发现image为空。不知道为什么。