2017-12-04 1 views
0

내 JavaFX 노드의 배경으로 InnerShadow 효과가있는 사각형을 표시해야한다는 요구 사항이 있습니다. 각 노드의 크기를 조정할 수 있어야합니다. 나는 InnerShadow가 자식 중 하나 인 Rectangle과이 클래스의 구체적인 구현에 의해 다른 자식으로 제공되는 Region이있는 Region을 가진 추상 기본 클래스를 사용하여이를 구현하고 있습니다.JavaFX Rectangle은 드롭 다운을 표시하는 ComboBox를 중지합니다.

하나 이상의 ComboBox를 자식 영역에 추가 할 때 문제가 발생합니다. 콤보 상자를 클릭해도 효과가 없습니다. 즉, 항목의 드롭 다운 목록을 표시하지 않습니다.

콤보 상자가 겹치지 않도록 사각형 (예 : 10x10 픽셀)을 작게 만들려고했습니다. 이것은 아무런 차이가 없습니다.

private void createNodeWithBackground() { 
    pane = new Region() { 
     @Override 
     public void resize(double width, double height) { 
      super.resize(width, height); 

      backing = new Rectangle(width, height); 
      InnerShadow shadeEffect = new InnerShadow(); 
      shadeEffect.setWidth(w/2); 
      shadeEffect.setHeight(h/2); 
      shadeEffect.setInput(new ColorAdjust(-0.1, 0.2, -0.1, 0.1)); 
      backing.setEffect(shadeEffect); 

      getChildren().clear(); 
      getChildren().addAll(backing, getBodyNode()); 
     } 
    }; 
    getChildren().add(pane); 
} 

/** 
* The concrete class provides a node to be displayed on top of the 
* Rectangle with the InnerShadow. 
* This might be a VBox containing a ComboBox and other nodes. 
*/ 
protected abstract Region getBodyNode(); 

장면에서 사각형을 제거하면 콤보 상자에 예상대로 드롭 다운 목록이 표시됩니다.

+0

자신의 솔루션에 만족하지 않으면 [MCVE]를 게시하십시오. – user1803551

답변

0

javafx.scene.control.ComboBox 대신 javafx.scene.control.ChoiceBox를 사용하면이 이유가 해결되지만 이유는 알 수 없습니다.

관련 문제