所以我想得到一个我正在制作的游戏,当我打开它时就开始播放音乐。我以前从未做过这样的事情,所以我想知道一些建议。考虑到我是菜鸟,我在网上找不到任何可理解的东西,所以如果您能做到并很好地解释它,那就太好了。谢谢!哦,我可以在程序上发布您需要的任何信息。

主类看起来像:

package com.game.main.window;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import java.awt.event.ActionListener;

public abstract class Main extends JFrame implements ActionListener {

public static JFrame frame = new JFrame();

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

public static void createWindow() {
    ImagePanel panel = new ImagePanel(
            new ImageIcon(
                    "C:\\Users\\Austin\\Pictures\\My Pictures\\Le Parkour\\ABC0001.jpg")
                    .getImage());

    frame.getContentPane().add(panel);
    frame.setJMenuBar(MenuBar.menuBarCreator());
    frame.pack();
    frame.setTitle("*Game Title* Beta 0.0.1 ADMINISTRATOR VERSION");
    frame.setSize(ImagePanel.img.getWidth(null),
            ImagePanel.img.getHeight(null));
    frame.setLocation(100, 100);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

最佳答案

请参阅JavaSound信息中的Playing a Clip 代码。页。

使用类似以下的方法获取指向游戏Jar中嵌入的声音的URL:

URL urlToExplosion = this.getClass().getResource("/path/to/boom.wav ");

编辑1
frame.setSize(ImagePanel.img.getWidth(null),
        ImagePanel.img.getHeight(null));

不好,不好,不好。不考虑框架装饰。 ImagePanel应将preferredSize()设置为等于图像的大小。由于它可能是ImageObserver,因此在获取图像的Width x Height时,可以使用this代替null。之后,只需将图像面板添加到框架并调用即可。
// set the frame to the smallest size needed to display the content
frame.pack();

10-06 05:29