2012-09-05 2 views
3

저는 사용자가 lineChart에서 기호, 선 스타일 등을 제어 할 수있게하려는 JavaFX 응용 프로그램을 보유하고 있습니다. 여러 스타일 시트를 작성하는 대신이 기능을 Java 코드에 빌드하려고합니다. 이전에 게시 된 Jewelsea의 탁월한 예제 덕분에 동적으로 선 스타일을 변경할 수 있습니다. 하지만 기본 기호 스타일을 변경하지는 않습니다.lineCharts의 심볼 등을 프로그래밍 방식으로 제어하기

node.setStyle을 호출 할 때 .css 문이 그대로 inline으로 얼마만큼 사용될 수 있는지는 분명하지 않습니다. 즉, '-fx- *'명령이 Java 코드에서 작동한다는 것을 알았습니다. 그러나 .css 파일의 기호는 다른 구문으로 정의되며 Java 코드 코드에 css 행을 삽입하는 것만으로는 작동하지 않습니다. 여기

내 코드의 예는 다음과 같습니다 경우

StringBuilder styleString = new StringBuilder();  
      // do some stylin' 
    switch (getLineStyle.getValue().toString()) { 
     case "Line and points": 
      styleString.append("-fx-stroke: blue; -fx-stroke-width: 2; "); 
      styleString.append(
        ".chart-symbol {-fx-background-color: blue; -fx-background-radius: 3px;}"); 
      engChart.setCreateSymbols(true); 
      break; 

     case "Line only": 
      styleString.append("-fx-stroke: blue; -fx-stroke-width: 2; "); 
      engChart.setCreateSymbols(false); 
      break; 

는 "라인과 포인트"나는 색상을 제어하고이 코드를 사용하여 폭 수 있어요,하지만 기호를 제어하는 ​​시도는 비참하게 실패합니다. 여기에서 구문을했다 : 제어 인라인 이런 종류의 작업을 수행하는 데 사용할 수있는 더 좋은 참조가있는 경우

http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introscenegraph

, 나는 그것이 무엇인지 알고 감사하겠습니다.

인라인을 올바르게 조작 할 수있는 사람은 누구입니까? 감사.

답변

3

스타일 문자열에 스타일 클래스 정의를 추가 할 수 없습니다. css 파일에서만 스타일 클래스를 정의 할 수 있습니다. 그래서 load your own css file을 만들고 기존 기호 스타일을 덮어 쓰거나 직접 기호 스타일을 만드십시오.

default stylesheet for JavaFX 2.2는 다음과 같은 정의를 포함

.chart-line-symbol { 
    -fx-background-color: #f9d900, white; 
    -fx-background-insets: 0, 2; 
    -fx-background-radius: 5px; 
    -fx-padding: 5px; 
} 
.default-color0.chart-line-symbol { -fx-background-color: #f9d900, white; } 
.default-color1.chart-line-symbol { -fx-background-color: #a9e200, white; } 
.default-color2.chart-line-symbol { -fx-background-color: #22bad9, white; } 
.default-color3.chart-line-symbol { -fx-background-color: #0181e2, white; } 
.default-color4.chart-line-symbol { -fx-background-color: #2f357f, white; } 
.default-color5.chart-line-symbol { -fx-background-color: #860061, white; } 
.default-color6.chart-line-symbol { -fx-background-color: #c62b00, white; } 
.default-color7.chart-line-symbol { -fx-background-color: #ff5700, white; } 

그러니 자신의 .chart 라인 심볼 정의를 제공하거나 예를 chart.getStyleClass().add("custom-chart")를 들어, 차트에 새로운 스타일의 클래스를 추가하고 사용자 정의 차트 기호를 정의 귀하의 CSS 파일에.

.custom-chart .chart-line-symbol { 
    -fx-background-color: #f9d900, firebrick; 
    -fx-background-radius: 0px; 
} 

otherways 차트 기호의 사용자 정의 스타일을 달성 할 수있다, 그러나 그것은 정말 사용 사례 작동하지 않는 한 단지 CSS를 사용하는 것이 아마도 가장 좋습니다.

관련 문제