相关疑难解决方法(0)

JavaFX中的图形可视化(如yFiles)

像Graphviz,但更具体地说,yFiles.

我想要一个节点/边缘类型的图形可视化.

我正在考虑制作节点a Circle和边缘a Line.问题是如何使用节点/边缘出现的区域.我应该使用a ScrollPane,regular Pane,a Canvas等...

我将添加滚动功能,缩放,选择节点和拖动节点.

谢谢您的帮助.

java javafx graphviz

40
推荐指数
1
解决办法
2万
查看次数

JavaFx 8 - 相对于鼠标位置缩放/缩放ScrollPane

我需要相对于鼠标位置放大/缩小滚动窗格.

我目前通过将我的内容包装在一个组中,并缩放组本身来实现缩放功能.我使用自定义数据透视创建一个新的Scale对象.(枢轴设置为鼠标位置)

这适用于组的初始比例为1.0的情况,但之后的缩放不会在正确的方向上缩放 - 我相信这是因为当缩放组时相对鼠标位置会发生变化.

我的代码:

@Override
public void initialize(URL location, ResourceBundle resources) {

    Delta initial_mouse_pos = new Delta();

    anchorpane.setOnScrollStarted(event -> {
        initial_mouse_pos.x = event.getX();
        initial_mouse_pos.y = event.getY();
    });

    anchorpane.setOnScroll(event -> {
        double zoom_fac = 1.05;
        double delta_y = event.getDeltaY();

        if(delta_y < 0) {
            zoom_fac = 2.0 - zoom_fac;
        }

        Scale newScale = new Scale();
        newScale.setPivotX(initial_mouse_pos.x);
        newScale.setPivotY(initial_mouse_pos.y);
        newScale.setX( content_group.getScaleX() * zoom_fac );
        newScale.setY( content_group.getScaleY() * zoom_fac );

        content_group.getTransforms().add(newScale);

        event.consume();
    });
}

private class Delta { double x, y; }
Run Code Online (Sandbox Code Playgroud)

如何在不同的缩放级别获得正确的鼠标位置?是否有一种完全不同的方式来缩放ScrollPane更容易?

java javafx zoom scrollpane javafx-8

7
推荐指数
1
解决办法
5984
查看次数

JavaFX 8 - 相对于鼠标指针的缩放

我一直在尝试使用此示例来了解缩放和缩放.它在演示缩放方面做得很好.

我一直试图找出如何改变它,以便不是简单地放大视图的当前中心,而是zoom in on the position of the mouse pointer.我失败了.我不确定使用哪些值来进行数学运算.我在其他语言中找到了一些例子,但JavaFX没有.

javafx zoom javafx-8

5
推荐指数
2
解决办法
2万
查看次数

用鼠标滚轮缩放条形图

我找到了许多如何放大图表的例子,但我正在寻找用户可以用鼠标滚轮滚动的基本示例.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;

public class BarChartSample extends Application {
    final static String austria = "Austria";
    final static String brazil = "Brazil";
    final static String france = "France";
    final static String italy = "Italy";
    final static String usa = "USA";

    @Override public void start(Stage stage) {
        stage.setTitle("Bar Chart Sample");
        final CategoryAxis xAxis = new CategoryAxis();
        final NumberAxis yAxis = new NumberAxis();
        final BarChart<String,Number> bc = 
            new BarChart<String,Number>(xAxis,yAxis);
        bc.setTitle("Country Summary"); …
Run Code Online (Sandbox Code Playgroud)

javafx javafx-2 javafx-8

3
推荐指数
1
解决办法
7460
查看次数

JavaFX和SVG:绘制一条线

我正在使用JavaFX来渲染一些SVG的东西.我定义了很多方法,返回不同SVG形状的路径(省略号,圆形,矩形,线条等).除线法外,所有这些似乎都有效.JavaFX不会返回错误(意味着路径可能正确),但它不会绘制任何内容.这是我的方法.

public static SVGPath line(float startX, float endX, float startY, float endY, PositionType positionType)
{
    SVGPath path = new SVGPath();
    path.setContent(positionType.getMoveto()+startX+","+startY+positionType.getLineto("l")+endX+","+endY);    

    return path;    
}
Run Code Online (Sandbox Code Playgroud)

该方法getMoveto()返回Mm,取决于PositionType,并getLineto()返回Ll.

这是一个示例方法调用:

SVGPath test2 = SVGPrimitives.line(20f, 30.1f, 23f, 89.21f, PositionType.ABSOLUTE);
Run Code Online (Sandbox Code Playgroud)

以下是返回的路径:

M20.0,23.0 L 30.1,89.21
Run Code Online (Sandbox Code Playgroud)

这似乎对我有用,但没有任何内容......

java svg javafx

2
推荐指数
1
解决办法
4921
查看次数

JavaFx 元素,根据窗口大小动态更改大小

我有这个: 在此处输入图片说明 一个带左节点的边框窗格(绿色箭头),里面有按钮(橙色箭头)。

我不能做的是找到一种方法来根据窗口的大小更改 Vbox(绿色段)的尺寸,然后更改按钮(橙色段)的尺寸。(当用户播放窗口大小时)

我更喜欢找到一种方法将参数设置到我的 css 文件中,或者作为最后的手段在我的 fxml 中。

.css 文件:

.left-borderPane{ /*this is style class for Vbox */
/*something so similar: */
-fx-min-width:30% ;
-fx-max-width:30% ;
}

.icon-settings{/*this is style class for buttons*/
-fx-shape:"M72.5,65.9 M90,50c0,8.6-2.5,16.9-7.3,24.1c-0.4,0.6-1,0.9-1.7,0.9c-0.4,0-0.8-0.1-1.1-0.3c-0.9-0.6-1.2-1.8-0.6-2.50zM69.6,50c0,3.2-0.6,6.2-1.8,9.1c-0.3,0.8-1.1,1.2-1.8,1.2c-0.2,0-0.5,0-0.8-0.1c-1-0.4c0.6-0.6,1.4-0.7,2.2-0.4C57.5,14.5,58,15.2,58,16z M35,37H14v26h21V37z M54,20.8l-15,15v28.3l15,15V20.8z";
/*something so similar: */
-fx-min-width:80% ;
-fx-max-width:80% ;
    }
Run Code Online (Sandbox Code Playgroud)

css layout javafx fxml scenebuilder

1
推荐指数
1
解决办法
8460
查看次数

标签 统计

javafx ×6

java ×3

javafx-8 ×3

zoom ×2

css ×1

fxml ×1

graphviz ×1

javafx-2 ×1

layout ×1

scenebuilder ×1

scrollpane ×1

svg ×1