내 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();
장면에서 사각형을 제거하면 콤보 상자에 예상대로 드롭 다운 목록이 표시됩니다.
자신의 솔루션에 만족하지 않으면 [MCVE]를 게시하십시오. – user1803551