我目前正在为朋友制作一个有趣的程序。但是我似乎无法克服困扰我的问题。
我正在创建一些警报对话框,这些对话框在屏幕周围出现10次,并且还在开始时播放歌曲。但是-在eclipse中启动时,所有文本,图片,徽标和歌曲都可以正常工作。尽管当我将项目导出为可执行的JAR文件时,它只打开了所有带有文本的对话框,并且在打开所有对话框之前,这些文本均未出现在任何对话框中。
我做错什么了吗?这是可执行JAR文件的运行方式吗?有没有什么办法解决这一问题? (没有错误)
View project setup here (库打包在生成的JAR中)
整个代码:
package application;
import java.io.File;
import java.util.Random;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
playSound();
for(int x = 0; x < 10; x++) {
Random r = new Random();
Alert alert = new Alert(AlertType.ERROR);
ImageView selectedImage = new ImageView();
Image image = new Image(new File("src/application/ca8.jpg").toURI().toString());
Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
alert.setTitle("text");
alert.setHeaderText("text");
alert.setContentText("text");
selectedImage.setImage(image);
selectedImage.setFitHeight(100);
selectedImage.setFitWidth(100);
stage.getIcons().add(image);
alert.setGraphic(selectedImage);
alert.setX(r.nextInt(1500));
alert.setY(r.nextInt(1000));
alert.setResizable(false);
alert.show();
}
}
public static void playSound() {
try {
File f = new File("src/application/oofer.wav");
AudioInputStream audioIn = AudioSystem.getAudioInputStream(f.toURI().toURL());
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
} catch (Exception ex) {
}
}
public static void main(String[] args) {
launch(args);
}
}