2014-05-08 3 views
3

Я пытаюсь получить снимок моего «всплывающего окна Java». «Java окно» выглядит следующим образом: http://www.directupload.net/file/d/3616/kajnpeag_png.htmJavaFX chart, snapshot

Однако снимок выглядит следующим образом: http://www.directupload.net/file/d/3616/cx47ga2o_png.htm

Извините за ссылки, но я не разрешается размещать изображения еще.

Таким образом, по оси Y отсутствует автоопределение, а по оси x отсутствуют даты. Почему не удалось получить мою снимок-функцию? Есть ли у вас какие-либо предложения/идеи по решению этой проблемы? За любую помощь я был бы благодарен.

Код функции снимка:

public void saveAsPng(Scene scene) { 
    WritableImage image = scene.snapshot(null); 
    File file = new File("chart.png"); 
    try { 
     ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", file); 
    } catch (IOException ex) { 
     Logger.getLogger(Server_Application.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

Функция вызова:

@Override 
public void start(Stage stage) throws Exception { 
... 
Parent root = FXMLLoader.load(getClass().getResource("MainPicture.fxml")); 
Scene scene = new Scene(root);    
stage.setScene(scene); 
stage.show(); 
Server_Application.serverApp.saveAsPng(scene); 
... 
} 

ответ

6

Я получил решение:

Вы должны отключить анимацию диаграммы:

lineChart.setAnimated(false); 
+0

Еще лучше, подождите ab пока анимация не закончится. Возможно, запустите другой поток delayd, который сделает снимок. – GGrec