我尝试发出一声嘟嘟声,我使用Toolkit.getDefaultToolkit()。beep(),它适用于Java 7.
import java.awt.Toolkit;
public class testbeep {
public static void main(String[] args) {
Toolkit.getDefaultToolkit().beep();
}
}
Howevere,我需要使用JavaFX,而JavaFX适用于Java 8.有人可以帮助我配置我的项目吗? 我在eclipse上工作,当我使用Java 8时,蜂鸣声工作但不是JavaFX,当我使用Java 7时,蜂鸣声不起作用而JavaFX不起作用。 我注意到icetea-sound.jar存在于Java 7上并且不存在于Java 8上,我可以在某处找到它吗?
答案 0 :(得分:0)
混合使用AWT和JavaFX可能有点棘手;但是这似乎对我来说很好(Java 1.8.0_20; Mac OS X 10.9.5):
import java.awt.Toolkit;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class TestBeep extends Application {
@Override
public void start(Stage primaryStage) {
Toolkit awtToolkit = Toolkit.getDefaultToolkit();
Button button = new Button("Beep");
button.setOnAction(e -> awtToolkit.beep());
StackPane root = new StackPane(button);
primaryStage.setScene(new Scene(root, 250, 75));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我不知道从AWT事件处理线程以外的线程调用toolkit.beep()
是否可以(在这里,我这样做)。
答案 1 :(得分:0)
在编写JavaFX应用程序时,您应该使用内置的JavaFX AudioClip API而不是基于AWT的API。
AudioClip plonkSound = new AudioClip("http://somehost/path/plonk.mp3");
plonkSound.play();
有关支持的音频格式的说明,请参阅JavaFX media Javadoc。
确保您的系统符合minimum requirements for JavaFX media playback。
对于ubuntu,要使用JavaFX,您需要使用Emmanuel在Debian OpenJFX package中发布的Oracle JDK或JavaFX and OpenJDK。 Debian OpenJFX软件包是一个全新的软件包,所以在这个阶段,如果可以的话,我建议坚持使用Oracle Java运行库。
关于有关icedtea-sound存在于Java 7而不是Java 8中的评论,也许这是因为你在openjdk和你的Java 8中的Java 7是Oracle jdk,也许Oracle jdk没有附带icedtea-sound(我没有& #39; t检查并且真的不知道)。如果你愿意的话,你可以试试openjdk 8 + debian openjfx包,也许会包括icedtea-sound库。纯JavaFX媒体播放绝对不需要icedtea-sound,但可能需要使用awt beep命令。无论如何,我可能仍然推荐使用JavaFX媒体库的JavaFX解决方案,而不是混合使用AWT库。