热键启动的问题

jlkm2011 2013-03-31 02:10:21
package com.hc.FlowerFly;

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Toolkit;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import com.sun.awt.AWTUtilities;

public class RanShow {

static int high = Toolkit.getDefaultToolkit().getScreenSize().height;
static int wigth = Toolkit.getDefaultToolkit().getScreenSize().width;

static Random rdm = new Random(System.currentTimeMillis());
Show s1 = new Show();
Show s2 = new Show();
Show s3 = new Show();
Show s4 = new Show();
Show s5 = new Show();
Show s6 = new Show();

URL cb;
File f = new File("D:/bgmusic.wav");
AudioClip aau;

class Show extends Thread
{
boolean b = true;
JFrame jf = new JFrame();
public void run()
{
while(b)
{
int i = 0;
jf.setLayout(null);
JLabel jl1 = new JLabel(new ImageIcon("D:/111.gif"));
jl1.setLocation(0, 0);
jl1.setSize(128, 128);
jl1.setOpaque(false);

jf.setUndecorated(true);
jf.setVisible(true);
jf.setSize(128, 128);
jf.add(jl1);
//jf.setLocation(Math.abs(rdm.nextInt(wigth)-128),Math.abs(rdm.nextInt(high)-128));
AWTUtilities.setWindowOpaque(jf, false); //设置窗体透明

int rdmint = Math.abs(rdm.nextInt(wigth)-140);
while(i<high-128)
{
jf.setLocation(rdmint, i); //在随机位置出现
i ++;
try {
Thread.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(i == high/Math.abs(rdm.nextInt(5)+1)) //在屏幕的随机位置停顿
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
jf.dispose();
}
}
public void shutdown()
{
b = false;
}
public void again()
{
b = true;
}
}

public void startThread()
{
s1.start();
s2.start();
s3.start();
s4.start();
s5.start();
s6.start();
}
public void stopThread()
{
s1.shutdown();
s2.shutdown();
s3.shutdown();
s4.shutdown();
s5.shutdown();
s6.shutdown();
}

public void palyMusic() //开始播放音频
{
try {
cb = f.toURL();
aau = Applet.newAudioClip(cb);
aau.loop();
} catch (MalformedURLException e) {

e.printStackTrace();
}
}
public void stopMusic() //停止播放音频
{
try {
cb = f.toURL();
aau = Applet.newAudioClip(cb);
aau.stop();
} catch (MalformedURLException e) {

e.printStackTrace();
}
}


}


这是随机出现图片的类

package com.hc.FlowerFly;

import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class FlowerFlyStart extends JFrame {

RanShow rsh = new RanShow();
static int high = Toolkit.getDefaultToolkit().getScreenSize().height;
static int wigth = Toolkit.getDefaultToolkit().getScreenSize().width;

FlowerFlyStart()
{
this.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_F1)
{
keyStart();
JOptionPane.showMessageDialog(null, "sss");
}
if(e.getKeyCode() == KeyEvent.VK_F2)
{
keyStop();
rsh.stopMusic();
JOptionPane.showMessageDialog(null, "222");
}

if(e.getKeyCode() == KeyEvent.VK_F10)
{
keyStop();
rsh.stopMusic();
System.exit(0);

}

}
});
}
public void keyStart()
{

rsh.palyMusic();
rsh.startThread();
}
public void keyStop()
{
rsh.stopThread();
rsh.stopMusic();
}

public static void main(String[] args)
{
FlowerFlyStart flower = new FlowerFlyStart(); //显示热键提示
flower.setLocation(wigth-270, high-80);
flower.setSize(240, 30);
flower.setUndecorated(true);
flower.setVisible(true);

JLabel j1 = new JLabel();
j1.setForeground(Color.GREEN);
j1.setLocation(0, 0);
j1.setSize(240, 30);
j1.setText(" 热键 F1:开始 F2:暂停 F10:退出");
j1.setBackground(Color.BLACK);
j1.setOpaque(true);
flower.add(j1);


}
}


这是调用的类,现在的问题是按F1启动后,再按F2和F10都没效果了,调试了半天不知道哪出问题了
...全文
78 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧