특정 사용자 작업 후에 알림 창을 표시하고 싶습니다. 내 응용 프로그램에는 여러 장면이 있으며 NotificationPane이 현재 활성 장면에 표시되어야합니다.알림 창이 장면에 나타나지 않습니다.
모든 것이 알림과 함께 작동하므로 필요한 경우 팝업됩니다. 그러나이 작업을 NotificationPane에 대해 수행하는 방법을 알 수 없습니다. 내가 지금까지 만든
단계 : - 작동
- 내 현장에 직접 NotificationPane을 넣어
show()
전화 tryed. 그것이 작동하지 않는 내가 왜 아무 생각이 - - 이제 아이디어,
stage.getScene().getRoot()
를 호출하여 현재 창을 얻을 NotificationPane로 포장 한 후show()
를 호출하는 것입니다. ((BorderPane) pane).setCenter(new Label("TEST"));
이 라인은 너무stage.getScene().getRoot()
이
내가 동작을 테스트하는 간단한 프로그램을 만들어 올바른 개체를 반환, 텍스트 레이블과 버튼을 대체하고있다. NotificationPane을 호출하는 단추 하나. 제안 사항이 있으십니까? 지금 문제를 참조
package application;
import org.controlsfx.control.NotificationPane;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Button notificationPaneButton = new Button("NotificationPane");
notificationPaneButton.setOnAction(e -> showNotificationPane(primaryStage, "Notification text"));
VBox vbox = new VBox(5);
vbox.setAlignment(Pos.CENTER);
vbox.getChildren().addAll(notificationPaneButton);
BorderPane borderPane = new BorderPane();
borderPane.setCenter(vbox);
primaryStage.setTitle("Notifications test");
primaryStage.setScene(new Scene(borderPane, 300, 200));
primaryStage.show();
}
public void showNotificationPane(Stage stage, String message) {
Parent pane = stage.getScene().getRoot();
// ((BorderPane) pane).setCenter(new Label("TEST"));
NotificationPane notificationPane = new NotificationPane(pane);
notificationPane.setText(message);
if (notificationPane.showingProperty().get()) {
notificationPane.hide();
System.err.println("hide");
} else {
notificationPane.show();
System.err.println("show");
}
}
}