读书人

小弟新学java 代码有关问题希望各位大

发布时间: 2012-12-16 12:02:32 作者: rapoo

小弟新学java 代码问题希望各位大大看看谢谢啦
javase程序代码如下是个音乐播放程序
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.net.URL;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

//播放声音程序
public class AudioPlayDemo extends JFrame implements ActionListener,ItemListener{
boolean looping = false; //是否循环播放
String[] choics = {
"F X - Chocolate Love.wav",
"F X - Chu.wav",
"F X - Dangerous.wav",
"F X - Electric Shock.wav",
"F X - Hot Summer.wav",
"F X - Ice Cream.wav",
"F X - Jet.wav" //声音文件名数组
};
URL file1 = getClass().getResource(choics[0]); //声音文件1
URL file2 = getClass().getResource(choics[1]); //声音文件2
URL file3 = getClass().getResource(choics[2]); //声音文件3
URL file4 = getClass().getResource(choics[3]); //声音文件4
URL file5 = getClass().getResource(choics[4]); //声音文件5
URL file6 = getClass().getResource(choics[5]); //声音文件6
AudioClip sound1 = java.applet.Applet.newAudioClip(file1);
//声音剪辑对象1
AudioClip sound2 = java.applet.Applet.newAudioClip(file2);
//声音剪辑对象2
AudioClip sound3 = java.applet.Applet.newAudioClip(file3);
//声音剪辑对象3
AudioClip sound4 = java.applet.Applet.newAudioClip(file4);
//声音剪辑对象4
AudioClip sound5 = java.applet.Applet.newAudioClip(file5);
//声音剪辑对象5
AudioClip sound6 = java.applet.Applet.newAudioClip(file6);
//声音剪辑对象6
AudioClip chosenClip = sound1; //选择声音的剪辑对象
JComboBox jcbFiles = new JComboBox(choics); //文件选择组合框
JButton loopButton = new JButton("循环播放"); //循环播放按钮
JButton palyButton = new JButton("播放"); //播放按钮
JButton stopButton = new JButton("停止"); //停止按钮
JLabel status = new JLabel("选择播放文件"); //状态栏标签
JPanel controlPanel = new JPanel(); //控制面板用于包容按钮


Container container = new getContentPane(); //获得窗口内容窗格
编译无法通过改为下面格式后可以但是死活出不来按钮程序运行之后就是一个窗口里面什么控件也没有!
Container container = new JFrame().getContentPane(); //获得窗口内容窗格public AudioPlayDemo(){//构造器
super("Winmap声音播放程序"); //调用父类构造器设置窗口标题栏
jcbFiles.setSelectedIndex(0); //设置组合框选择项
jcbFiles.addItemListener(this); //为播放器按钮添加监视器
//为播放按钮,循环播放按钮,停止播放按钮添加动作监听器
palyButton.addActionListener(this);
loopButton.addActionListener(this);
stopButton.addActionListener(this);
stopButton.setEnabled(false); //设置停止播放按钮不可用
//把播放按钮,循环播放按钮,停止播放按钮加入到控制面板
controlPanel.add(palyButton,BorderLayout.CENTER);
controlPanel.add(loopButton,BorderLayout.CENTER);
controlPanel.add(stopButton,BorderLayout.CENTER);
//把文件选择组合框,控制面板,状态栏标签加入到窗口内容窗格
container.add(palyButton,BorderLayout.CENTER);
container.add(loopButton,BorderLayout.CENTER);
container.add(stopButton,BorderLayout.CENTER);
container.add(jcbFiles,BorderLayout.NORTH);
container.add(controlPanel,BorderLayout.CENTER);
container.add(status,BorderLayout.SOUTH);
setSize(250,530); //设置窗口大小
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
switch (jcbFiles.getSelectedIndex()) {
case 0:
chosenClip = sound1;
break;
case 1:
chosenClip = sound2;
break;
case 2:
chosenClip = sound3;


break;
case 3:
chosenClip = sound4;
break;
case 4:
chosenClip = sound5;
break;
case 5:
chosenClip = sound6;
break;
default:
chosenClip=sound1;
break;
}
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(chosenClip == null){
status.setText("声音未载入");
return; //如果AudioClip对象为空,则直接返回
}
Object source = arg0.getSource(); //获取用户激活的按钮
//播放按钮事件处理
if(source == this.palyButton){
stopButton.setVisible(true); //设置停止播放按钮可用
loopButton.setVisible(true); //设置循环播放按钮可用
chosenClip.play(); //播放选择的声音剪辑对象一次
status.setText("正在播放"); //设置状态栏信息
}
//循环播放按钮事件处理
if (source == this.loopButton) {
// palyButton
looping = true;
chosenClip.loop();
loopButton.setEnabled(false);


stopButton.setEnabled(true);
status.setText("正在循环播放");
}
//停止播放按钮事件处理
if (source == stopButton) {
if (looping) {
looping = false;
chosenClip.stop(); //停止循环播放选择的声音剪辑对象
loopButton.setEnabled(true); //设置循环播放按钮可用
}else{
chosenClip.stop(); //停止播放选择的声音剪辑对象
}
stopButton.setEnabled(false); //设置循环播放按钮可用
status.setText("停止播放"); //设置状态栏信息
}
}
public static void main(String args[]){
new AudioPlayDemo(); //创建AudioPlayDemo对象
}
如上所示 红蓝文字处不解 求赐教 谢谢
[最优解释]
这两句话都错误的狠:
Container container = new getContentPane(); // 根本语法错误,new只能创建对象,不能调用函数
Container container = new JFrame().getContentPane(); // 你新建了个JFrame,跟当前正在使用的这个就毫无关系了!


要么是:
Container container = this.getContentPane();
但更应该是将这段的初始化放在构造函数中来完成:
public AudioPlayDemo(){
super("Winmap声音播放程序");
this.container = this.getContentPane();
......

[其他解释]
哦 谢谢csdn果然是牛人如云 明白了 呵呵
[其他解释]
好好好好好好 好好
[其他解释]
我的eclipse打不开了 大大能不能再帮忙看看如下图:

我看了下log是这样的:
!SESSION Mon Dec 03 14:34:30 CST 2012 ------------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2012-12-03 14:34:30.875
!MESSAGE Exception launching the Eclipse Platform:


!STACK
java.lang.UnsupportedClassVersionError: org/eclipse/core/runtime/adaptor/EclipseStarter (Unsupported major.minor version 48.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
[其他解释]
有人知道吗?
[其他解释]
java.lang.UnsupportedClassVersionError: org/eclipse/core/runtime/adaptor/EclipseStarter (Unsupported major.minor version 48.0)

你用低版本的JVM去启动高版本JDK所开发的Eclipse,所以无法支持。

检查下自己的JVM吧,估计你装多了,乱了。

读书人网 >J2SE开发

热点推荐