2010-03-03 4 views
1

CSS 스타일을 JavaFX 구성 요소에 적용했는데 한 가지 상황을 제외하고는 모든 것이 잘 작동하는 것처럼 보입니다. JavaFX 구성 요소를 구성 요소 트리에 직접 추가 할 때 CSS 스타일이 적용되지 않습니다. 다음과 같은 스타일 시트와CSS 스타일이 JavaFX 구성 요소 트리에 추가 된 요소에 적용되지 않습니다.

package test; 

import javafx.stage.Stage; 
import javafx.scene.Scene; 
import javafx.scene.shape.Rectangle; 
import javafx.scene.input.MouseEvent; 
import javafx.util.Math; 
import javafx.scene.paint.Color; 

function getRect(): Rectangle { 
    return Rectangle { 
     x: 230 * Math.random() 
     y: 60 * Math.random() 
     width: 20, height: 20 
     styleClass: "abc" 
    } 
} 

def stage: Stage = Stage { 
    scene: Scene { 
     width: 250, height: 80 
     stylesheets: "{__DIR__}main.css" 
     content: [ 
      Rectangle { 
       x: 0, y: 0, width: 250, height: 80 
       fill: Color.WHITE 
       onMouseClicked: function (evt: MouseEvent): Void { 
        insert getRect() into stage.scene.content; 
       } 
      } 
      getRect() 
     ] 
    } 
} 

: 다음 코드 예를 들어

.abc { 
    fill: red; 
} 

파일 (모두 test 패키지) 흰색 배경에 표시 붉은 광장 main.css에 있지만, 주요 사각형 검은 색을 클릭 한 후 (빨간색이 아님) 사각형이 장면에 추가됩니다.

  1. 구성 요소를 동적으로 스타일 정보가 적용되지 않은 것처럼 보이는 덧붙였다

    나는 것으로 나타났습니다.
  2. JavaFX 코드에서 스타일을 설정하면 모든 것이 잘 동작합니다.
  3. stylesheets 속성을 변경하면 (이미 다른 유효한 스타일 시트를 가리키고 있음) 이미 추가 된 객체가 올바르게 렌더링됩니다.

누구든지이 문제의 해결책을 알고 있습니까? 물론 모든 속성을 JavaFX 코드에 넣거나 모든 기존 스타일 시트에 대해 동일한 데이터를 포함하고 다른 구성 요소를 추가 한 직후에 스타일 시트를 변경하는 다른 스타일 시트를 제공 할 수 있지만 멋진 해결책을 찾고 싶습니다.

미리 감사드립니다.

답변

1

1.2의 버그입니다. 다음 릴리스에서 수정되었습니다.