JavaFX 2.0のScatterChartをシステムクリップボードにコピーする必要があります。私は、鉢植えの点でScatterChartの全体像をどのようにコピーするのかは分かりません。JavaFX 2.0のシステムクリップボードにScatterChartのイメージをコピー
3
A
答えて
4
次のコードを参照してください。インポートの混乱を避けるために、javafx以外のすべてのクラスに完全なパッケージ名を追加しました。
public void start(final Stage primaryStage) throws Exception {
VBox root = new VBox();
final Scene scene;
primaryStage.setScene(scene = new Scene(root));
NumberAxis xAxis = new NumberAxis("X-Axis", 0d, 8.0d, 1.0d);
NumberAxis yAxis = new NumberAxis("Y-Axis", 0.0d, 5.0d, 1.0d);
ObservableList<XYChart.Series> data = FXCollections.observableArrayList(
new ScatterChart.Series("Series 1", FXCollections.<ScatterChart.Data>observableArrayList(
new XYChart.Data(0.2, 3.5),
new XYChart.Data(0.7, 4.6),
new XYChart.Data(7.8, 4.0))));
final ScatterChart chart = new ScatterChart(xAxis, yAxis, data);
Button btnShoot = new Button("screenshot");
btnShoot.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
try {
// getting screen coordinates
Bounds b = chart.getBoundsInParent();
int x = (int)Math.round(primaryStage.getX() + scene.getX() + b.getMinX());
int y = (int)Math.round(primaryStage.getY() + scene.getY() + b.getMinY());
int w = (int)Math.round(b.getWidth());
int h = (int)Math.round(b.getHeight());
// using ATW robot to get image
java.awt.Robot robot = new java.awt.Robot();
java.awt.image.BufferedImage bi = robot.createScreenCapture(new java.awt.Rectangle(x, y, w, h));
// convert BufferedImage to javafx.scene.image.Image
java.io.ByteArrayOutputStream stream = new java.io.ByteArrayOutputStream();
ImageIO.write(bi, "png", stream);
Image image = new Image(new java.io.ByteArrayInputStream(stream.toByteArray()), w, h, true, true);
// put it to clipboard
ClipboardContent cc = new ClipboardContent();
cc.putImage(image);
Clipboard.getSystemClipboard().setContent(cc);
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
root.getChildren().addAll(chart, btnShoot);
primaryStage.show();
}
N.B .:このアプローチはAWTサイドバイサイドのJavaFXと一般的に良いアイデアではなく、すべての構成で動作しない可能性が使用することを含みます。 AWTRobot
の代わりにGlassRobot
を使用することをお勧めします。残念ながらまだ十分に安定していません。
3
はスクリーンショット
/**
* Sets the image content of the clipboard to the chart supplied
* @param chart chart you wish to copy to the clipboard
*/
public void copyChartToClipboard(ScatterChart<Double, Double> chart) {
WritableImage image = chart.snapshot(new SnapshotParameters(), null);
ClipboardContent cc = new ClipboardContent();
cc.putImage(image);
Clipboard.getSystemClipboard().setContent(cc);
}
を取るためにすべてのボットの必要性を取り除く
関連する問題
- 1. JavaFX:カスタムScatterChart
- 2. JavaFxファイルをシステムクリップボードにコピーしてos内に貼り付けます
- 3. JavaFX ScatterChart:データポイントのアイコンを設定する方法は?
- 4. yankedテキストのみをvimのシステムクリップボードにコピーする
- 5. のJavaFX 2.0:
- 6. JavaFX 2.0のクリップビュー
- 7. emacsは、nowindowモードでシステムクリップボードにkill-ringをコピーします。
- 8. JavaFXのイメージ
- 9. JavaFx 2.0ゲームエンジン/フレームワーク - JavaFx 2.0はどのようにJavaゲームを変えますか?
- 10. JavaFX 2.0サブウィンドウ
- 11. JavaFx 2.0メニュー
- 12. JavaFX 2.0カスタムウィンドウフレームボタン
- 13. のJavaFX 2.0 XYChartとCSS
- 14. JavaFX 2.0トレイへのウィンドウ
- 15. JavaFX 2.0のMenuBarでsetFocusTraversableビヘイビア
- 16. JavaFXの背景イメージ
- 17. gtkmmとシステムクリップボード
- 18. JavaFX 2.0 - FXMLのカスタムコンポーネントのアクションハンドラを作成
- 19. javafxイメージの色の変更
- 20. イメージをROIにコピー
- 21. gvimは、選択したテキストをシステムクリップボードにコピーします(アプリケーションと共有する)
- 22. javafx 2.0ラベルに枠を追加する
- 23. Google Charts ScatterChartに線を描く
- 24. のJavaFX 2.0 + EJB +のNetbeans - ランタイム例外
- 25. Javafx 2.0での画像の操作
- 26. JavaFX 2.0スタイル/テンプレートの既存のコントロール
- 27. Unity 2.0 loose dependencies - dllのコピー
- 28. 回転イメージin Javafx
- 29. イメージ丸いボタンJavaFX
- 30. JavaFX 2.0 with LibGDX(またはその他)