各バーの上部または本体に、バーの数値を含むラベルを追加したいと考えています。BarChart
API と CSS リファレンス ガイドの両方を検索しましたが、それを定義するオプションが見つかりませんでした。
これは JavaFX チャートの現在のバージョンでサポートされていますか?
私は同じことをしようとしています。これまでのところ、これは私が持っているものです。
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() );
}
}
}
}
}