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