*对于我可能给你们带来的所有麻烦,我感到很遗憾。
所以,我只是在Java和Python方面有一点经验,对编程非常陌生。我试图创建一个可以打开框架的程序。在这个框架中会有一个按钮。单击时,此按钮将播放一首歌曲。我使用了来自YouTube的“推荐”代码。代码将开始运行,然后停止。甚至不会出现任何框架。我把它展示给了我的一位经验丰富的朋友。他说确切的代码在他的电脑上运行得很好。然后我给他发了我在eclipse上显示的项目的截图。他说我的JRE似乎丢失了一些文件。我尝试了一个只创建一个窗口的代码,但它有同样的问题。我不确定JRE是什么,但我目前有JRE7。我不知道该怎么做才能解决这个问题。请帮忙。
Severity and Description Path Resource Location Creation Time Id
The public type TopLevelWindow must be defined in its own file TGProject/src Frame.java line 4 1390698271752 73
The type TopLevelWindow is already defined TGProject/src TopLevelWindow.java Unknown 1390699351785 77
The method show(boolean) from the type Component is deprecated TGProject/src sound.java line 16 1390702839525 78
指向我日食的链接。 http://gyazo.com/3afdfa4f6750420f4e46deec40389340
指向我的Java文件的链接。 http://gyazo.com/257481d4ae9e2bb1d0ca93415a6c547e 音乐代码
import java.awt.event.*;
import javax.swing.*;
import sun.audio.*;
import java.io.*;
public class sound {
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(200,200);
JButton button = new JButton("Click me");
frame.add(button);
button.addActionListener(new AL());
//this is outdated, but should still work
frame.show(true);
}
public static class AL implements ActionListener{
public final void actionPerformed(ActionEvent e) {
music();
}}
public static void music()
{
AudioPlayer MGP = AudioPlayer.player;
AudioStream BGM;
AudioData MD;
ContinuousAudioDataStream loop = null;
try{
BGM = new AudioStream(new FileInputStream("Jambi.mp3"));
MD = BGM.getData();
loop = new ContinuousAudioDataStream(MD);
}catch(IOException error) {}
MGP.start(loop);
}
}
框架代码
import java.awt.*;
import javax.swing.*;
// Create a simple GUI window
public class TopLevelWindow {
private static void createWindow() {
//Create and set up the window.
JFrame frame = new JFrame("Simple GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel textLabel = new JLabel("I'm a label in the window",SwingConstants.CENTER);
textLabel.setPreferredSize(new Dimension(300, 100));
frame.getContentPane().add(textLabel, BorderLayout.CENTER);
//Display the window.
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
createWindow();
}
}
答案 0 :(得分:1)
The public type TopLevelWindow must be defined in its own file
您需要更改。
public class TopLevelWindow {
要:
class TopLevelWindow {
或按照报告进行操作,并为TopLevelWindow
The type TopLevelWindow is already defined
我不确定这意味着什么,但可以通过修复第一个问题来解决。
The method show(boolean) from the type Component is deprecated
对于任何弃用警告,请转到Java Docs中的相关方法。他们应该提供有关使用内容的详细信息。
sun
包中的类,因为 Java 1.3 ,所以有更好的替换类。答案 1 :(得分:0)
如果您真的是编程新手,我建议使用IDE(开发环境),例如Netbeans或Eclipse,并创建一个新的JFrame表单。然后,您可以使用设计视图以图形方式设计界面,IE在屏幕上拖动您的按钮。无需绕过编程框架。代码所需的只是实现;单击按钮后会发生什么。
发布代码后,我又看了一眼,这就是我发现的: 这两个类都有主要方法。我跑了两个,每个都为我打开了一个不同的窗口。通常,您只需要一个主要方法。这是主要方法!这是你的计划的起点,你当然只有一个起点。此时,您的程序将根据您运行的主要方法执行两项不同的操作。
不过,这不是你的问题,因为两个主电源都在为我而奔跑。我想你必须有错误的java版本或什么?
答案 2 :(得分:0)
我认为你做的是将所有代码粘贴到一个未被称为“TopLevelWindow”的文件中。如果是这样,那就这样做。我认为你的问题会消失。
请记住,每个文件只有一个类,(除了内部类;不能作为初学者关注自己)。