0

私は、アメリカの国旗に国歌に合わせて旗竿をスケーリングさせる必要があるクラスのプログラムを書いています。コードはありますが、アプレットが見つかっても見つからないというエラーが表示されます。私は日食を使用しています。誰かが私が欠けているものを手伝ってくれる?

前もって感謝します...

コード:

@SuppressWarnings("serial")
public class Lab5b extends JApplet {
  private AudioClip audioClip;

  public Lab5b() {
    add(new ImagePanel());

    URL urlForAudio = getClass().getResource("audio/us.mid");
    audioClip = Applet.newAudioClip(urlForAudio);
    audioClip.loop();
  }

  public void start() {
    if (audioClip != null) audioClip.loop();
  }

  public void stop() {
    if (audioClip != null) audioClip.stop();
  }

  /** Main method */
  public static void main(String[] args) {
    // Create a frame
    JFrame frame = new JFrame("Lab 5");

    // Create an instance of the applet
    Lab5b applet = new Lab5b();
    applet.init();

    // Add the applet instance to the frame
    frame.add(applet, java.awt.BorderLayout.CENTER);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // Display the frame
    frame.setSize(200, 660);
    frame.setVisible(true);
  }
}

@SuppressWarnings("serial")
class ImagePanel extends JPanel {
  private ImageIcon imageIcon = new ImageIcon("image/us.gif");
  private Image image = imageIcon.getImage();
  private int y = 550;

  public ImagePanel() {
        Timer timer = new Timer(120, new TimerListener());
        timer.start();
    }

    class TimerListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            increaseY();
        }
    }


  public void increaseY() {
        if (y > 0) {
            y--;
            repaint();
        }
    }

  /** Draw image on the panel */
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (image != null) {
      g.fillRect(0, 0, 10, 660);
      g.drawImage(image, 11, y, 160, 84, this);
        }
  }
}

ここにコードを入力してください

4

1 に答える 1

1

注意すべきいくつかの事柄

  • Appletsmain()メソッドで実行を開始しないでください。ただし、を使用してを拡張するとapplets、Javaインタープリターを使用して(メソッドを使用して)実行することができます。main()classFrame

  • init()このメソッドは、ブラウザまたはアプレットビューアによって呼び出され、システムにロードされたことをこのアプレットに通知するため、このメソッドを用意することが重要です。startメソッドが最初に呼び出される前に、常に呼び出されます。

  • JFrameJAppletはすべてトップレベルのコンテナであり、にを追加する代わりにapplet、/の両方に追加できるframeため、オブジェクトを作成したいと思います。あなたの場合は、トップレベルのコンテナのいずれかに追加するだけです。JPanelJFrameJAppletImagePanel

  • I / Oストリームは、の範囲をあまり提供しませんapplets

  • appletがユーザーのハードディスク上のファイルにアクセスすることはできません。

詳細はこちら

于 2013-03-26T23:59:44.640 に答える