2

各バーの上部または本体に、バーの数値を含むラベルを追加したいと考えています。BarChart

API と CSS リファレンス ガイドの両方を検索しましたが、それを定義するオプションが見つかりませんでした。

これは JavaFX チャートの現在のバージョンでサポートされていますか?

4

2 に答える 2

1

私は同じことをしようとしています。これまでのところ、これは私が持っているものです。

class CustomStackedBarChart extends StackedBarChart<String, Number> {

    public CustomStackedBarChart( CategoryAxis xAxis, Axis<Number> yAxis ) {
        super( xAxis, yAxis );

        setAnimated( false );
        setLegendVisible( false );
        setTitleSide( Side.TOP );
        setTitle( "SSPP Diurnal Symbol Rate" );
        setMinHeight( 500 );
        setMinWidth( 1000 );
    }

    @Override
    protected void layoutPlotChildren() {
        super.layoutPlotChildren();

        // Each individual Data element has its own bar.
        // TODO add label to each bar.
        for ( Series<String, Number> series : getData() ) {
            for ( Data<String, Number> data : series.getData() ) {
                StackPane bar = (StackPane) data.getNode();

                Label label = null;

                for ( Node node : bar.getChildrenUnmodifiable() ) {
                    LOGGER.debug( "Bar has child {}, {}.", node,
                        node.getClass() );
                    if ( node instanceof Label ) {
                        label = (Label) node;
                        break;
                    }
                }

                if ( label == null ) {
                    label = new Label( series.getName() );
                    label.setRotate( 90.0 );
                    bar.getChildren().add( label );
                }
                else {
                    label.setText( series.getName() );
                }
            }
        }
    }
}
于 2013-03-28T00:36:18.107 に答える