java游戏java 点击按钮钮背景音乐就停止是怎么回事

为什么Java的JFrom中添加了背景音乐,但只响两秒就停了_百度知道
为什么Java的JFrom中添加了背景音乐,但只响两秒就停了
这是我添加在JFrom里的关于背景音乐的代码,明明是一分多钟的,音乐只响了一两秒就停了,怎么回事,求指教
我有更好的答案
写成类变量,试试。。。。。。
可能是在窗口类里只被调用了一下,所以很快就停了,同样的代码,我放到线程里就可以运行了
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Java里面关闭音乐的代码,研究了一晚上就是运行不出来_百度知道
Java里面关闭音乐的代码,研究了一晚上就是运行不出来
百度了很久都没有解决,代码无错,可以播放音乐,点击停止按钮就出现图中情况,音乐不停
我有更好的答案
Java开源框架的源代码怎么读?说读开源框架的源代码对自己写程序很有帮助的,我不知道从那里下手 找一个你熟悉的项目,下回来源码,然后单步跟踪一遍,前题有一定基础,至少会单步跟踪调试对ide也得熟悉些,项目别选太大的,像apache里面的项目
采纳率:87%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。我在网页上放了一个JAVA按钮控制背景音乐,在我的机子上运行正常,可在别的机子却产生错误,源代码如下。。。(急,在线等待)
编辑:www.fx114.net
本篇文章主要介绍了"我在网页上放了一个JAVA按钮控制背景音乐,在我的机子上运行正常,可在别的机子却产生错误,源代码如下。。。(急,在线等待)
100sunge]",主要涉及到我在网页上放了一个JAVA按钮控制背景音乐,在我的机子上运行正常,可在别的机子却产生错误,源代码如下。。。(急,在线等待)
100sunge]方面的内容,对于我在网页上放了一个JAVA按钮控制背景音乐,在我的机子上运行正常,可在别的机子却产生错误,源代码如下。。。(急,在线等待)
100sunge]感兴趣的同学可以参考一下。
//&Source&File&Name:&&&bgsound.java
import&java.applet.A
import&java.applet.AppletC
import&java.awt.*;
import&java.net.MalformedURLE
import&java.net.URL;
public&class&bgsound&extends&Applet
&&&&public&void&init()
&&&&&&&&img1&=&getImage(getDocumentBase(),&getParameter("img1"));
&&&&&&&&img2&=&getImage(getDocumentBase(),&getParameter("img2"));
&&&&&&&&framename&=&getParameter("framename");
&&&&&&&&documentname1&=&getParameter("documentname1");
&&&&&&&&documentname2&=&getParameter("documentname2");
&&&&&&&&soundopen&=&getParameter("soundopen");
&&&&&&&&soundclose&=&getParameter("soundclose");
&&&&&&&&img&=&img1;
&&&&&&&&try
&&&&&&&&&&&&url1&=&new&URL(getDocumentBase(),&documentname1);
&&&&&&&&&&&&url2&=&new&URL(getDocumentBase(),&documentname2);
&&&&&&&&catch(MalformedURLException&_ex)&{&}
&&&&&&&&c&=&
&&&&&&&&url&=&url1;
&&&&&&&&status&=&
&&&&public&void&start()
&&&&public&void&paint(Graphics&g)
&&&&&&&&update(g);
&&&&public&void&stop()
&&&&public&void&destory()
&&&&public&void&run()
&&&&public&void&update(Graphics&g)
&&&&&&&&g.drawImage(img,&0,&0,&this);
&&&&public&boolean&mouseDown(Event&event,&int&i,&int&j)
&&&&&&&&if(c)
&&&&&&&&&&&&img&=&img2;
&&&&&&&&&&&&url&=&url2;
&&&&&&&&&&&&status&=&
&&&&&&&&&&&&c&=&
&&&&&&&&}&else
&&&&&&&&&&&&img&=&img1;
&&&&&&&&&&&&url&=&url1;
&&&&&&&&&&&&status&=&
&&&&&&&&&&&&c&=&
&&&&&&&&getAppletContext().showDocument(url,&framename);
&&&&&&&&repaint();
&&&&&&&&showStatus(status);
&&&&&&&&return&
&&&&public&boolean&mouseEnter(Event&event,&int&i,&int&j)
&&&&&&&&if(c)
&&&&&&&&&&&&showStatus(soundclose);
&&&&&&&&else
&&&&&&&&&&&&showStatus(soundopen);
&&&&&&&&return&
&&&&public&boolean&mouseExit(Event&event,&int&i,&int&j)
&&&&&&&&return&
&&&&public&bgsound()
&&&&boolean&c;
&&&&Image&
&&&&Image&img1;
&&&&Image&img2;
&&&&String&
&&&&String&documentname1;
&&&&String&documentname2;
&&&&String&
&&&&String&
&&&&String&
&&&&URL&url1;
&&&&URL&url2;
在别的机子上显示错误为:exception:com.ms.security.exceptionEx[bgsound.init]:cannot&access&file//site/public/background.gif
此时按钮为灰色不可用
在网页内的调用为:
&applet&codebase=../../class/&code=bgsound.class&width=48&height=27&border=0&
&param&name=img1&value="../../public/jpg/sound_open.jpg"&
&param&name=img2&value="../../public/jpg/sound_close.jpg"&
&param&name=framename&&value="frame1"&
&param&name=documentname1&&value="../../public/sound.html"&
&param&name=documentname2&&value="../../public/blank.html"&
&param&name=soundopen&&&value="打开背景声音"&
&param&name=soundclose&&value="关闭背景声音"&
请高手帮助!提示的错误信息不是很明白?找不到background.gif的图片。你把&applet&中的codebase改成http://你的ip地址/somewhere&&试试,不能用../../之类的,那样其他机器会在他们的本地机器上找了。那为什么我把整个站点拷到其它机器上用../../这样的相对路径也不行呢?
我做的网站还在还没发布到WEB上,想在光盘上用,是教学的,为什么在我机器好用呢?继续。。。看来是权限问题img1&=&getImage(new&URL(getDocumentBase()),&getParameter("img1"));
试一下to&wes109(我要飞)
怎摸设置权限啊http://www.csdn.net/expert/topic/553/553879.xml?temp=.3192102
我的帖子,不过我没再试过,你试试&吧你的codebase有问题,因为applet本来目的是放在网上运行的,所以对class的安全有限制,不能把自己机器的目录信息暴露出来,一般使用:
...&code=***.class&archive=***.jar&...
所以用相对路径你的本机运行没问题,放到其他机器上就有问题。但是这个bgsound.class是在其他的光盘内找到的,它也是用的相对路竟。拿到其他机器上都好使啊?你有它的原码吗?
反编译一下to:我要飞
上面的原码就是我用JAD反编译出来的唷。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:Java背景音乐为什么点鼠标就没了_百度知道
Java背景音乐为什么点鼠标就没了
static void playMusic(){//背景音乐播放
//jdk自带类库只能实现AU,AIFF,WAV,MIDI,RFM等格式的音频try {
File f = new File(&C:\\Users\\Administrator\\Music\\BaiduMusic\\Transcode\\200.wav&); // 引号里面的是音乐文件所在的路径
cb = f.toURL();
aau = Applet.newAudioClip(cb);
aau.play();
aau.loop();//循环播放
System.out.println(&可以播放&);
// 循环播放 aau.play()
//单曲 aau.stop()停止播放
} catch (MalformedURLException e) {
e.printStackTrace();
我有更好的答案
你如果使用Java Media Framework 2.1(也就是JMF2.1),其中的Pplayer.stop();方法,就是有暂停功能, 当执行Pplayer.stop();player.setMediaTime(new Time(0));后,音乐就停止了,如果执行Pplayer.stop();
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
最近写了一个Swing版本的Snake程序,可是不太清楚怎么样来实现游戏中常见的暂停操作,所以我列出自己的一些方案,大家来讨论下什么样的方式会好些,还有就是如何更好的实现暂停这种方法。
方案1,直接利用状态变量,如果处于暂停状态,则什么也不做(空循环)
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
int mDirection = sv.getMoveDirection();
// KEY_START
//如果是开始键,就设置程序状态为开始
if (keyCode == SnakeKey.START) {
gameState == RUNNING;
// KEY_PAUSE
//如果是暂停键,就设置程序状态为开始
if (keyCode == SnakeKey.PAUSE) {
gameState == PAUSE;
//设置方向
//省略其它按键的操作
更新画面的线程
private Thread mRedrawHandler = new Thread() {
public void run() {
while (true) {
// if pause mode, do nothing
if (mMode == PAUSE) {
if (mMode == RUNNING) {
// 进行更新操作
// 省略部分代码
Thread.sleep(mMoveDelay);
if (mMode == LOSE) {
// TODO sss
// 重置 mScore
// 重置 mMoveDelay
// 记录当前得分,如果有排行榜的话
} catch (InterruptedException ex) {
觉得这样的话 while 循环会占用大量的 CPU 时间 , 所以在 continue 前加了一个 Thread.sleep(1000); 先让程序停止 1s 钟。虽然不知道系统的原理是什么,但感觉自己写的空循环占用的资源要比 Thread.sleep() 要多吧。
if (mMode == PAUSE) {
Thread.sleep(1000);
可是觉得这样也不好,会影响程序的响应速度。
后来学习了线程的同步,就想着改成同步,在系统中加入一个锁,平时这个锁可以由画面线程获得,可是当按下 pause 时,就让另外的线程取得锁,这样的话,画面线程取得不到锁,就会自已停下来了。
接收键盘事件的函数
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
int mDirection = sv.getMoveDirection();
// KEY_START
if (keyCode == SnakeKey.START) {
pauseOrResume();
// KEY_PAUSE
if (keyCode == SnakeKey.PAUSE) {
pauseOrResume();
//设置方向
//省略其它按键的操作
更新画面的线程
private Thread mRedrawHandler = new Thread() {
public void run() {
while (true) {
synchronized (pauseLock) {
// if pause mode, wait the lock.
if (mMode == PAUSE) {
pauseLock.wait();
pauseLock.notifyAll();
if (mMode == RUNNING) {
// 进行更新操作
// 省略部分代码
Thread.sleep(mMoveDelay);
if (mMode == LOSE) {
// TODO sss
// 重置 mScore
// 重置 mMoveDelay
// 记录当前得分,如果有排行榜的话
} catch (InterruptedException ex) {
另外加了一个方法来控制锁:
private Object pauseLock = new Object();
* Pause or resume the game
private void pauseOrResume() {
while (true)
synchronized (pauseLock) {
if (mMode == RUNNING) {
mMode = PAUSE;
if (mMode == PAUSE || mMode == LOSE) {
mMode = RUNNING;
// Tell the screen to run.
pauseLock.notifyAll();
但是不知道在这种情况下会有什么不好,欢迎大家讨论。
附件是一个小的示例程序,大家可以看一下,可以是因为代码贴多了,不好容易看,可以下载附件看看示例。
=================================================
1.更新了代码,删除了无用的部分代码
2.更新了TrafficLightsDemo.jar代码,修正原来的代码,使用在暂停时的响应时间减少。
3.贪吃蛇的程序已经放到论坛上,可以去下载看全部代码
描述: 小示例程序 wait()和notifyAll()来实现暂停
下载次数: 101
描述: 使用中断线程和新建线程来实现暂停
下载次数: 61
描述: 利用信号量来实现暂停
下载次数: 59
论坛回复 /
(21 / 11877)
用wait 和 notify就挺好的呀。
只是为了学习讨论一下能用的方式,在信号量的示例中,使用的也是wait()和notify()方式,只是封装一下而已。
怕麻烦的话就用thread.sleep();好了。。。虽然会出现很多不良效果。。
什么不良后果?
我实在很无语,,你动手试试下面的代码输出了什么,然后把t.interrupt();注释掉,再看看输出的是什么,我不多说了,可能你想得太多了,不是有句话叫做“什么都别想------直接去做”吗?
public class thread6
{
&&& public static void main(String[] args)
&&& {
&&&&&&& compute t=new compute();
&&&&&&& t.start();
&&&&&&& t.interrupt();
&&& }
}
///创建一个线程类,在这个类中,通过休眠,让线程运行输出不同的结果
class compute extends Thread&
{
&&& int i=0;
&&& public void run()
&&& {
&&&&&&& System.out.println("在工作中,不要打扰");
&&&&&&& try
&&&&&&& {
&&&&&&&&&&& sleep();
&&&&&&& }
&&&&&&& catch(Exception e){System.out.println("哦,电话来了");}
&&& }
}
这种方式是可行的,但是这并不是interrupt的用途,就像API中所说的,它只是通知相应的线程而已。同时会引起sleep()函数出现异常,在这种情况下就变成用异常来控制程序了。
唉 基础不是一般般的差
大哥,不要光感叹,基础也是慢慢练出来的啊。
我就简单说一句.
先别搞那个多线程,用一个线程先把程序写出来.
然后慢慢改成多线程的,啥问题都可以解决了.
就有两个线程而已,一个用来接收用户输入,一个用来更新画面,我觉得这样至少两个线程吧。
看清楚你的API呀,
如果线程在调用 Object 类的 wait()、wait(long) 或 wait(long, int) 方法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException。&&&&
意思就是如果正在SLEEP(),就先把SLEEP()干掉,而不是干掉thread。
无语了,interrupt()函数根本就不是中断线程的,它只是设置线程的一个中断变量,由程序来决定是否使用这个变量,但是如果线程在调用 Object 类的 wait()、wait(long) 或 wait(long, int) 方法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int) 方法时,中断变量被置位,则这些方法会抛出InterruptedException这个异常。
这个函数只是通知一个线程结束而已,如下代码
private Thread eventHandler = new Thread(eventRunnable);
private Runnable eventRunnable = new TrafficLightRunnable();
class TrafficLightRunnable implements Runnable {
public void run() {
while (true) {
// Do something
// for example repaint the panel
tl.repaint();
你即使调用了eventHandler.interrupt();它也不会停止。
晕哦,,还说我不用脑子呢,你怎么连线程睡眠和唤醒都不知呢,你想什么时候不SLEEP(),就是直接调用interrupt() 终止睡眠咯,别告诉我你不会用,太没礼貌了。
首先对我说有话表示歉意,说的有点重了。
在JAVA的API中,interrupt()是用来中断一个线程的,而不是中断睡眠的,如果调用了这个方法,这个线程就已经停止了,这和暂停的这种说法已经不同了。当然喽,经过你的启发,我想也可以设计成在点击”暂停“时直接中断“刷新界面”的线程,在点击”开始“时再次启动一个新线程,做同样的工作,但这和当前的讨论无关。
Java2 Platform Standard Ed. 6 写道
interrupt
public void interrupt()中断线程。
如果当前线程没有中断它自己(这在任何情况下都是允许的),则该线程的 checkAccess 方法就会被调用,这可能抛出 SecurityException。
如果线程在调用 Object 类的 wait()、wait(long) 或 wait(long, int) 方法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException。
如果该线程在可中断的通道上的 I/O 操作中受阻,则该通道将被关闭,该线程的中断状态将被设置并且该线程将收到一个 ClosedByInterruptException。
如果该线程在一个 Selector 中受阻,则该线程的中断状态将被设置,它将立即从选择操作返回,并可能带有一个非零值,就好像调用了选择器的 wakeup 方法一样。
如果以前的条件都没有保存,则该线程的中断状态将被设置。
中断一个不处于活动状态的线程不需要任何作用。
SecurityException - 如果当前线程无法修改该线程
wjyjimy 写道你最多可以thread.sleep(477587);哦~
你直接就填好了,以前学Midlet的时候老师好象说不要用pauseApp()来暂
停,要用就用thread.Sleep(),现在我都忘了Midlet怎么个写法了,呵呵~
兄弟, 用点头脑好不好,你让它sleep了这么久,当你点开始的时候它还会反应么~~
晕哦,,还说我不用脑子呢,你怎么连线程睡眠和唤醒都不知呢,你想什么时候不SLEEP(),就是直接调用interrupt() 终止睡眠咯,别告诉我你不会用,太没礼貌了。
你最多可以thread.sleep(477587);哦~
你直接就填好了,以前学Midlet的时候老师好象说不要用pauseApp()来暂
停,要用就用thread.Sleep(),现在我都忘了Midlet怎么个写法了,呵呵~
兄弟, 用点头脑好不好,你让它sleep了这么久,当你点开始的时候它还会反应么~~
怕麻烦的话就用thread.sleep();好了。。。虽然会出现很多不良效果。。已经说明了Thread.sleep()有很多的不好,不知道其它的程序是如何实现的,如果使用这个的话,时间设置多少才会好些呢?
Memento模式.
不太了解设计模式,不过我看这个模块好像是保存状态的,在网上找了一下,好像做Undo操作的啊。不知道如果实现暂停。
& 上一页 1
iceliushuai
浏览: 22302 次
来自: 大连
上一个项目上线后有几天空闲,写了一个awt的,
在公司电脑上, ...
&div class=&quote_title ...
用wait 和 notify就挺好的呀。
&div class=&quote_title ...
使用信号量来实现暂停的方式
画面更新进程中
&pre n ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 java点击按钮弹出窗口 的文章

 

随机推荐