2016-03-22 45 views
0

如何在弹出窗口时添加声音通知?我想添加我的自定义声音文件,而不是Windows声音。如何在javafx的弹出窗口中添加声音

代码:

public class PopupWindow { 

    Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds(); 

    public void display(String newCase) throws IOException { 

     Stage window = new Stage(); 
     Image applicationIcon = new Image(getClass().getResourceAsStream("../images/logo.jpg")); 
     window.getIcons().add(applicationIcon); 
     window.initStyle(StageStyle.UNDECORATED); 

     Label txtNotification = new Label("Новых заявок:"); 
     Label notification = new Label(newCase); 
     notification.setTranslateX(120); 
     notification.setStyle("-fx-text-fill: crimson"); 
     Button closeButton = new Button("x"); 
     closeButton.setTranslateX(205); 
     closeButton.setTranslateY(5); 
     closeButton.setOnAction(event -> window.close()); 

     Pane layout = new Pane(); 

     layout.getChildren().addAll(txtNotification, notification, closeButton); 

     window.setX(primaryScreenBounds.getMinX() + primaryScreenBounds.getWidth() - 245); 
     window.setY(primaryScreenBounds.getMinY() + primaryScreenBounds.getHeight()/1.2); 

     Scene scene = new Scene(layout); 
     window.setScene(scene); 
     layout.getStylesheets().add(this.getClass().getResource("../style/popup.css").toExternalForm()); 

     window.setAlwaysOnTop(true); 
     window.showAndWait(); 
    } 
} 

回答

1

播放的AudioClip,您在弹出窗口中调用showAndWait()之前:

AudioClip plonkSound = new AudioClip("http://somehost/path/plonk.aiff"); 
plonkSound.play(); 

如果你想从你的类路径中加载音频剪辑(例如从兄弟位置的jar文件到你的PopopWindow.class),然后获取剪辑作为资源:

AudioClip plonkSound = new AudioClip(
    PopupWindow.getResource("plonk.aiff").toExternalForm() 
); 
+0

感谢您的回复,但我想添加声音文件到我的项目,而不是网址 –

相关问题