JAVA新手,图片显示不出,求大神解答

importjava.awt.Dimension;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.... import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

public class plane extends Frame implements ActionListener,Runnable
{

public static void main(String[] args)
{
new plane();
}

Image image;
public plane() {
Frame fr= new Frame("看,灰机!!!");
//fr.pack();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screen = tk.getScreenSize();
int screenh = screen.height;
int screenw = screen.width;
fr.setSize(screenw/2,screenh/2);
fr.setLocation(screenw/4,screenh/4);

Toolkit tk1 = Toolkit.getDefaultToolkit();
image = tk1.getImage("F:\\EclipseWebProject\\plane.jpg"); //这图片显示不出

fr.setVisible(true);
new Thread(this).start();
}

public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根

}

public void keyTyped(KeyEvent e)
{
char c = e.getKeyChar();
if (c == 'w')
{

}
}

public void run() {
// TODO 自动生成的方法存根
repaint();
}

public void paint(Graphics g)
{
g.drawImage(image,0, 0, 200,200, this);
}

}
展开
 我来答
183******63
2013-10-24
知道答主
回答量:32
采纳率:0%
帮助的人:13.2万
展开全部
image = tk1.getImage("F:\\EclipseWebProject\\plane.jpg"); //这图片显示不出
光有这句是不行的,
ImageIcon iicon = new ImageIcon("F:/EclipseWebProject/plane.jpg");
Image image = iicon.getImage();
或者用JLabel image= new JLabel(iicon);也行
不过我建议别用绝对地址,换一台电脑图片就无法显示
追问
你说那个我用过,可是当我想改变图片位置的时候怎么改呢?
那地址是没错的
image = tk1.getImage("F:\\EclipseWebProject\\plane.jpg");这句我知道显示不出来,可是在paint函数里面写了显示的代码了
追答
....setIcon(...);//重新设置图片,实现更换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java紧挨va
2013-10-25 · TA获得超过880个赞
知道小有建树答主
回答量:690
采纳率:50%
帮助的人:325万
展开全部
lz的图片怎么写死了、、、、
一般是取到当前项目所在的盘符,然后取得图片的ba?
追问
不懂,刚学还没学到那么深
追答
image = tk1.getImage(System.getProperty("user.dir") + " \\plane.jpg"); 

您试试看?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ch316937855
2013-10-24
知道答主
回答量:19
采纳率:0%
帮助的人:13.8万
展开全部
要确保路径没有错误
ImageIcon iicon = new ImageIcon("F:/EclipseWebProject/plane.jpg");
Image image = iicon.getImage();
追问

  路径没错

  问题已经解决了,但具体原因感觉有点抽象我也不懂怎么说,刚学JAVA不太懂其中的原理。下面给修改后的代码你看看,可以的话解释一下具体原因给我听,不胜感激

代码太长,不给粘上来,截图给你看看

 

追答
给你一个JPanel类   自己传个Image参数  然后把面板加到JFrame就可以了
public class Draw_ImageViewer extends JPanel{
private Image image; private boolean stretched = true;private int xCoordinate;private int yCoordinate;
public Draw_ImageViewer() { }
public Draw_ImageViewer(Image image) {
super();
this.image = image; }
protected void paintComponent(Graphics g){
super.paintComponent(g);
if(image != null){
if(isStretched()){
g.drawImage(image, xCoordinate, yCoordinate, getSize().width, getSize().height, this);
}else{
g.drawImage(image, xCoordinate, yCoordinate, this);
} } }
public void setxCoordinate(int xCoordinate) { this.xCoordinate = xCoordinate;}
public void setyCoordinate(int yCoordinate) {this.yCoordinate = yCoordinate; }}
public class JFrameGui extends JFrame {public JFrameGui() {ImageIcon iicon = new ImageIcon("F:/EclipseWebProject/plane.jpg");Image image = iicon.getImage();Draw_ImageViewer p = new Draw_ImageViewer(image); p.setxCoordinate(100);p.setyCoordinate(100);add(p);}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuda1992
2013-10-23 · TA获得超过122个赞
知道答主
回答量:46
采纳率:100%
帮助的人:25.4万
展开全部
图片没有加进容器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式