【问题标题】:My program is throwing an Exception,but it runs fine我的程序抛出异常,但运行良好
【发布时间】:2012-11-05 01:39:52
【问题描述】:

这是我正在做的代码:

import java.net.*;
import java.applet.*;
import javax.swing.*;
import java.io.*;
import java.awt.*;
import javax.sound.sampled.AudioFileFormat;
class GraphicsProgram extends Canvas
{
public GraphicsProgram()
{ setSize(200, 200);
setBackground(Color.PINK);
}
public static AudioFileFormat ee;
public static AudioClip ss;
public class NEW extends JApplet {
public void init() {
  ss = Applet.newAudioClip(Get_Location("/pj1/anarkali.wav"));
  ss.play();}

public URL Get_Location(String filename)
{
    URL url = null;
    try{ url=this.getClass().getResource(filename);

    }
    catch(Exception e){}
    return url;
  }
  }
   public static void main(String[] argS)
    {
GraphicsProgram GP = new GraphicsProgram();
//create a new frame to which we will add a canvas
Frame aFrame = new Frame(); aFrame.setSize(800, 800);
//add the canvas
aFrame.add(GP);
aFrame.setVisible(true); }
public void paint(Graphics g)
{
Image img01 = Toolkit.getDefaultToolkit().getImage("e:\\m.gif");
g.drawImage(img01, 110, 140, this);
Image img0 = Toolkit.getDefaultToolkit().getImage("e:\\m10.jpg");
g.drawImage(img0, 100, 140, this);
Image img2 = Toolkit.getDefaultToolkit().getImage("e:\\m2.gif");
g.drawImage(img2, 200, 140, this);
NEW ss=new NEW();
ss.init();
}
    }

我得到: 线程“AWT-EventQueue-0”java.lang.OutOfMemoryError 中的异常:Java 堆空间

但是,我仍然可以运行它,它正在播放声音并显示图像。这可能吗?为什么我会出现堆空间错误?

【问题讨论】:

  • 当错误发生时,堆栈跟踪说它在做什么?尝试加载损坏的图像时可能会出现此错误,因为它试图分配大量内存来尝试对其进行解码。
  • GraphicsProgram extends Canvas .. NEW extends JApplet 不要在没有充分理由的情况下将 Swing 与 AWT 组件混用。而是使用JPanel
  • @peter Andrew 会记住的。谢谢。

标签: java swing exception-handling applet out-of-memory


【解决方案1】:

您收到此异常是因为在每次绘制事件时您都在加载图像。您应该只在初始化时执行一次,然后在 paint 方法中重用图像。

等等...在每个绘制事件中,您都在创建一个 NEW 的新实例,它就是 Applet 本身。所以你的堆被大量的小程序填满了,这是你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多