2014-03-04 4 views

답변

29

할 수 있습니다 중 하나, 당신이 그것으로 당신의 컨트롤을 추가하거나 Dialog 상자 팝업이 필요한 경우, 당신은 새로운 무대를 만들기위한 DialogsFX 또는 ControlsFX (JavaFX8 필요)

사용을 고려할 수 있으며, 새로운 Stage을 만들

dialog.initModality(Modality.NONE); 
012 : 당신이 modal (블록 다른 창)이 될하지 않으려면 다음 코드를 사용을

@Override 
public void start(final Stage primaryStage) { 
    Button btn = new Button(); 
    btn.setText("Open Dialog"); 
    btn.setOnAction(
     new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent event) { 
       final Stage dialog = new Stage(); 
       dialog.initModality(Modality.APPLICATION_MODAL); 
       dialog.initOwner(primaryStage); 
       VBox dialogVbox = new VBox(20); 
       dialogVbox.getChildren().add(new Text("This is a Dialog")); 
       Scene dialogScene = new Scene(dialogVbox, 300, 200); 
       dialog.setScene(dialogScene); 
       dialog.show(); 
      } 
     }); 
    } 

을 사용할 수 있습니다

0

ControlsFx Popover control을 들여다 보았습니까?


import org.controlsfx.control.PopOver; 
import org.controlsfx.control.PopOver.ArrowLocation; 

private PopOver item; 

final Scene scene = addItemButton.getScene(); 

final Point2D windowCoord = new Point2D(scene.getWindow() 
     .getX(), scene.getWindow().getY()); 

final Point2D sceneCoord = new Point2D(scene.getX(), scene. 
       getY()); 

final Point2D nodeCoord = addItemButton.localToScene(0.0, 
         0.0); 
final double clickX = Math.round(windowCoord.getX() 
    + sceneCoord.getY() + nodeCoord.getX()); 

final double clickY = Math.round(windowCoord.getY() 
     + sceneCoord.getY() + nodeCoord.getY()); 
item.setContentNode(addItemScreen); 
item.setArrowLocation(ArrowLocation.BOTTOM_LEFT); 
item.setCornerRadius(4);        
item.setDetachedTitle("Add New Item"); 
item.show(addItemButton.getParent(), clickX, clickY); 

이 예에 불과하지만 당신이 원하는 것을 달성 할 수 있었던 것처럼 팝 오버 소리

. 자세한 내용은 documentation을 확인하십시오.

중요 사항 : ControlsFX는 JavaFX 8.0 b118 이상에서만 작동합니다.

4

원하는대로 Popup 클래스가 Stage 클래스보다 나을 수도 있습니다. 스테이지는 모달 (앱에서 다른 것을 클릭 할 수 없음)이거나 앱의 다른 곳을 클릭하면 사라집니다 (별도의 창이기 때문에). 팝업은 상단에 있지만 모달은 아닙니다.

이 부분을 참조하십시오. Popup Window 예.

관련 문제