【问题标题】:Image in Applet not displaying小程序中的图像不显示
【发布时间】:2017-11-20 01:09:01
【问题描述】:

我试图在小程序窗口中显示Image,但它不起作用。我已将图像放在小程序文件的同一目录中。

这是我的示例代码

import java.applet.Applet;
import java.awt.Image;
import java.awt.Graphics;

public class Animation extends Applet{

    Image img;

    public void init(){
        img=getImage(getDocumentBase(),"images.jpg");           
    }

    public void paint(Graphics g){
         g.drawImage(img, 40, 60, this);
         g.drawString("This is first step", 10, 30);
    }

}

【问题讨论】:

  • “我已将图像放在小程序文件的同一目录中” - 然后尝试改用ImageIO.read(getClass().getResource("images.jpg"))getImage 正在尝试从小程序查看器正在使用的 Web 服务器或执行上下文中加载它
  • Applet 在 15 年前被 JApplet 取代,您可以考虑改用它。此外,您应该在进行任何自定义绘画之前调用super.paintJLabel 是显示图像的更好方式
  • 1) 为什么要编写小程序?如果是老师指定的,请参考Why CS teachers should stop teaching Java applets。 2) 为什么使用 AWT?请参阅this answer 以了解放弃使用支持 Swing 的组件的 AWT 的许多充分理由。 3) 图像是否与加载小程序的 HTML 位于同一目录中?这就是 JRE 将寻找图像的地方。
  • “我已经把图片放在applet文件的同一个目录下。” - 你说的这行是什么意思?哪个目录?
  • 我的 Animation.java 文件位于 c:\workspace\applet\Animation.java 并且我要加载到 applet 中的图像位于 c:\workspace\applet\images.jpg跨度>

标签: java applet awt


【解决方案1】:

正如@MadProgrammer 所说,您可以简单地使用 IO 方法从正确的 URL 读取图像。
否则,您可以尝试将图像放在工作区的 /bin 文件夹中。
如果还是不行,试试this

【讨论】:

    【解决方案2】:
    /*
    <applet class='Applet3' width=400 height=400>
    </applet>
    */
    import java.awt.*;
    import java.applet.*;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.imageio.ImageIO;
    
    
    public class Applet3 extends Applet {
    Image img;
    
    @Override
        public void init() {
        try { 
            img = ImageIO.read(getClass().getResource("g.jpg")) ;
    
        } catch (IOException ex) {
            Logger.getLogger(Applet3.class.getName()).log(Level.SEVERE, null, ex);
        }
        }
      public void paint(Graphics g) {  
        g.drawImage(img, 30,30, this);  
      }
    
    }
    

    【讨论】:

    • 请参考上面的代码。我已经包含了@madProgrammer 建议的方法 ImageIO.read(getClass().getResource("g.jpg"))。我正在使用netbeans。要将图像复制到正确的位置,请参阅下面的链接。 youtube.com/watch?v=fEPm2Nz6ocM&t=124s
    猜你喜欢
    • 2015-08-17
    • 2014-07-02
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    相关资源
    最近更新 更多