JavaFX 2 и CSS классы - PullRequest
       7

JavaFX 2 и CSS классы

2 голосов
/ 28 марта 2012

Я практикуюсь с JavaFX 2.0, рисуя XYChart с двумя рядами линий и устанавливая цвет, обводку и т. Д. В файле CSS.

По этой ссылке

http://docs.oracle.com/javafx/2.0/charts/css-styles.htm

это говорит:

Все диаграммы JavaFX имеют общие свойства, которые можно установить с помощью CSS-классов .chart, .chart-content, .chart-title и .chart-legend.

Мой вопрос: где я могу найти список всех этих классов CSS? Я нигде не могу его найти.

Ссылочная ссылка на JavaFX CSS

http://docs.oracle.com/javafx/2.0/api/javafx/scene/doc-files/cssref.html

перечисляет все свойства, но не классы CSS

Спасибо

Ответы [ 2 ]

5 голосов
/ 28 марта 2012

Стили по умолчанию можно найти в caspian css (ссылка для JavaFX 2.2 и ссылка для Java 8 ).

Вы можете просматривать классы стилей в интерактивном режиме, используя ScenicView tool.

Вы можете рекурсивно распечатать узлы на диаграмме, чтобы выяснить во время выполнения, какой они тип и какие классы CSS применяются к ним.Узлы должны быть напечатаны после того, как сцена была присоединена к показанному этапу, чтобы дать возможность разметке CSS выполнить на узлах и применить к ним правильные классы стилей.Часто я также ищу узлы по классу css для динамического стиля или манипулирования ими в коде.

Вот пример, который вы можете настроить для своей диаграммы.

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.*;
import javafx.scene.chart.*;
import javafx.stage.Stage;

public class SimpleChart extends Application {
  public static void main(String[] args) { launch(args); }
  @Override public void start(Stage stage) {
    final AreaChart chart = new AreaChart(
      new NumberAxis(), new NumberAxis(),
      FXCollections.observableArrayList(
         new XYChart.Series("April", FXCollections.observableArrayList(
           new XYChart.Data(0, 4), new XYChart.Data(1, 10), new XYChart.Data(2, 18)
         )),
         new XYChart.Series("May", FXCollections.observableArrayList(
           new XYChart.Data(0, 20), new XYChart.Data(1, 15), new XYChart.Data(2, 12)
         ))
      )      
    );
    chart.setTitle("Temperature Monitoring (in Degrees C)");
    stage.setScene(new Scene(chart, 800, 600));
    stage.show();

    printNodes(chart, 0);
  }

  public void printNodes(Node node, int depth) {
    for (int i = 0; i < depth; i++) System.out.print(" ");
    System.out.println(node);
    if (node instanceof Parent) 
      for (Node child : ((Parent) node).getChildrenUnmodifiable()) 
        printNodes(child, depth + 1);
  }
}

И вывод:

AreaChart@fb17e5[styleClass=root chart]
 Label[id=null, styleClass=label chart-title]
  LabelSkin[id=null, styleClass=label chart-title]
   LabeledText@f0548c[styleClass=text]
 Chart$1@f617ce[styleClass=chart-content]
  Region@41d471[styleClass=chart-plot-background]
  XYChart$1@1e26fe1
   Path@ccec5f[styleClass=chart-alternative-column-fill]
   Path@1b289cd[styleClass=chart-alternative-row-fill]
   Path@751a9b[styleClass=chart-vertical-grid-lines]
   Path@25e068[styleClass=chart-horizontal-grid-lines]
   Line@afceff[styleClass=chart-vertical-zero-line]
   Line@3ed81c[styleClass=chart-horizontal-zero-line]
   Group@1de52ea[styleClass=plot-content]
    Group@b66999
     Path@255d[styleClass=chart-series-area-fill series0 default-color0]
     Path@1952ad4[styleClass=chart-series-area-line series0 default-color0]
    StackPane@1cedaf2[styleClass=chart-area-symbol series0 data0 default-color0]
    StackPane@1887d29[styleClass=chart-area-symbol series0 data1 default-color0]
    StackPane@1d13cab[styleClass=chart-area-symbol series0 data2 default-color0]
    Group@15426ec
     Path@1e606a9[styleClass=chart-series-area-fill series1 default-color1]
     Path@bf7baa[styleClass=chart-series-area-line series1 default-color1]
    StackPane@1c758d7[styleClass=chart-area-symbol series1 data0 default-color1]
    StackPane@99a1b5[styleClass=chart-area-symbol series1 data1 default-color1]
    StackPane@4788f3[styleClass=chart-area-symbol series1 data2 default-color1]
  NumberAxis@11f25f3[styleClass=axis]
   Label[id=null, styleClass=label axis-label]
    LabelSkin[id=null, styleClass=label axis-label]
     LabeledText@bb303[styleClass=text]
   Path@ab12f1[styleClass=axis-tick-mark]
   Path@acaa28[styleClass=axis-minor-tick-mark]
   Text@1c2a074[styleClass=text tick-mark]
   Text@8ebcab[styleClass=text tick-mark]
   Text@d600e3[styleClass=text tick-mark]
   Text@10eb552[styleClass=text tick-mark]
   Text@14b5854[styleClass=text tick-mark]
   Text@a51ac9[styleClass=text tick-mark]
   Text@804b08[styleClass=text tick-mark]
   Text@d7a8bb[styleClass=text tick-mark]
   Text@1776b55[styleClass=text tick-mark]
   Text@ee1793[styleClass=text tick-mark]
   Text@102b5a9[styleClass=text tick-mark]
  NumberAxis@1f4899c[styleClass=axis]
   Label[id=null, styleClass=label axis-label]
    LabelSkin[id=null, styleClass=label axis-label]
     LabeledText@12d40de[styleClass=text]
   Path@11d3cb1[styleClass=axis-tick-mark]
   Path@7bc9a9[styleClass=axis-minor-tick-mark]
   Text@25b987[styleClass=text tick-mark]
   Text@c4720[styleClass=text tick-mark]
   Text@2f958[styleClass=text tick-mark]
   Text@1a51ac0[styleClass=text tick-mark]
   Text@26e232[styleClass=text tick-mark]
   Text@8b5b5[styleClass=text tick-mark]
   Text@1843ea1[styleClass=text tick-mark]
   Text@c8d74b[styleClass=text tick-mark]
   Text@12cc880[styleClass=text tick-mark]
   Text@1439c50[styleClass=text tick-mark]
   Text@10c4148[styleClass=text tick-mark]
 Legend@2a46d1[styleClass=chart-legend]
  Label[id=null, styleClass=label chart-legend-item]
   LabelSkin[id=null, styleClass=label chart-legend-item]
    Region@1990ca[styleClass=chart-legend-item-symbol chart-area-symbol series0 area-legend-symbol default-color0]
    LabeledText@70f11d[styleClass=text]
  Label[id=null, styleClass=label chart-legend-item]
   LabelSkin[id=null, styleClass=label chart-legend-item]
    Region@1ec15c7[styleClass=chart-legend-item-symbol chart-area-symbol series1 area-legend-symbol default-color1]
    LabeledText@89c1ee[styleClass=text]
5 голосов
/ 28 марта 2012
  1. В этом руководстве http://docs.oracle.com/javafx/2.0/css_tutorial/jfxpub-css_tutorial.htm рекомендуется изучить файл caspian.css, который имеет стили по умолчанию для всех компонентов. Вы можете получить его из SDK:

    jar -xf jfxrt.jar com/sun/javafx/scene/control/skin/caspian/caspian.css
    
  2. Как вы уже упоминали, другим полезным источником является ccs-ref документ в javadoc: http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html

...