javafxを使用してアプリケーションを作成します。私はチャートのズーム機能を追加したいGridPaneの親のレイアウトに影響を与えずに子ノードを追加する方法
:それはこのようになります。 「ズームイン」ボタンをクリックすると、アプリはfig2になります。しかし、私はそれを達成するための考えがありません。私は変更するとウィンドウのサイズチャートを含め、それがグリッドペインのサイズを変更します、次のようになります。
javafxを使用してアプリケーションを作成します。私はチャートのズーム機能を追加したいGridPaneの親のレイアウトに影響を与えずに子ノードを追加する方法
:それはこのようになります。 「ズームイン」ボタンをクリックすると、アプリはfig2になります。しかし、私はそれを達成するための考えがありません。私は変更するとウィンドウのサイズチャートを含め、それがグリッドペインのサイズを変更します、次のようになります。
あなたはズームがgridpaneのレイアウトを検討する必要はありません。これは、変更したいグリッドペインの子に変換を適用することで実現できます。
次の例では、マウスが上にマウスを移動している間ノードをズームする方法を示しています。私は、このズーム状況考えていない
private static Region createRegion(String background) {
Region region = new Region();
region.setStyle("-fx-background-color:"+background);
region.setPrefSize(300, 100);
return region;
}
@Override
public void start(Stage primaryStage) {
GridPane gp = new GridPane();
// create background
gp.add(createRegion("green"), 0, 0);
gp.add(createRegion("dodgerblue"), 0, 1);
// create region to be zoomed
Region zoomRegion = createRegion("red");
GridPane.setFillWidth(zoomRegion, Boolean.FALSE);
GridPane.setFillHeight(zoomRegion, Boolean.FALSE);
zoomRegion.setPrefWidth(100);
Scale scale = new Scale();
zoomRegion.getTransforms().add(scale);
// keep pivot at bottom left corner
scale.pivotYProperty().bind(zoomRegion.heightProperty());
zoomRegion.hoverProperty().addListener((observable, oldValue, newValue) -> {
// adjust scale when hover state is changed
double scaleFactor = newValue ? 1.5 : 1;
scale.setX(scaleFactor);
scale.setY(scaleFactor);
});
gp.add(zoomRegion, 0, 1);
Scene scene = new Scene(gp);
primaryStage.setScene(scene);
primaryStage.show();
}
ありがとう、それはうまく動作します。しかし私は別の質問に会う。グラフを拡大すると、他のグラフと重なり合って表示されます。たとえば、私はズームインして、[that](https://drive.google.com/open?id=0B40SG6a0JJCER0FMRHE3M1h2dlk)のように見えますが、ズームインすると[that](https:// drive)のように見えます。 google.com/open?id=0B40SG6a0JJCEbjVNMDFzYk5XaXc)。ペインスタイル '' -fx-background-color:rgb(255,255,255,1)」を設定しました。 – huangjs
。私はあなたがボタンを押したときに 'Chart'の高さと幅を変更する必要があると思います。 – Sedrick