2016-02-11 3 views
0

Я хотел бы применить украшения ControlsFx в TableCell и как таковые хотел бы применить их к ярлыку.ControlsFx Украшение на ярлыке

Данное следующее НЕ применимо к этикетке. Должно ли это?

import org.controlsfx.control.decoration.Decorator; 
import org.controlsfx.control.decoration.GraphicDecoration; 
import org.controlsfx.validation.decoration.GraphicValidationDecoration; 

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Node; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.stage.Stage; 

public class LabelDecoration extends Application { 

    private static final Image REQUIRED_IMAGE = new Image(GraphicValidationDecoration.class.getResource("/impl/org/controlsfx/control/validation/required-indicator.png").toExternalForm()); //$NON-NLS-1$ 

    @Override 
    public void start(Stage primaryStage) throws Exception { 

     Label label = new Label("Test"); 

     Node requiredDecoration = new ImageView(REQUIRED_IMAGE); 
     Decorator.addDecoration(label, new GraphicDecoration(requiredDecoration, Pos.TOP_LEFT)); 

     primaryStage.setScene(new Scene(label, 100, 100)); 
     primaryStage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 

} 

ответ

1

декоратор пытается установить DecorationPane в сцену, которая еще не существует в вашем случае.

Wrap линия Decorator.addDecoration (...) в Platform.runLater (...) и он будет работать.

+0

Спасибо, что нашли время ответить на это. – stacktrace