提问人:Keen Teen 提问时间:11/17/2023 更新时间:11/17/2023 访问量:23
查找图表组件的大小和相对位置以及图表的边界
Finding the size and relative position of a chart's components w.r.t. chart's bounds
问:
我正在使用 JavaFX 编写代码,其中有多个图表(例如 s 或 s),每个图表都位于不同的位置。用户必须能够修改图表数据、在图表上拖动绘图区域、更改刻度标签和长度、定义轴、标题或图例的标签,以及更改任何图表组件的颜色。在每次操作时,都需要任何图表组件(例如绘图区域、轴、图例、标签、标题或刻度线)相对于图表边界的相对位置进行进一步处理。从视觉上讲,我希望在以下给定的图表中找到红色和绿色矩形的位置和大小:LineChart
ScatterChart
AnchorPane
以下两个代码片段无法给出准确的结果:
代码 1
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Region;
import javafx.stage.Stage;
public class Test8 extends Application {
@Override
public void start(Stage stage) {
AnchorPane anchorPane=new AnchorPane();
Scene scene=new Scene(anchorPane,600,400);
stage.setScene(scene);
stage.show();
LineChart<Number,Number> lineChart=new LineChart<>(new NumberAxis(),new NumberAxis());
Region region= (Region) lineChart.lookup(".chart-plot-background");
anchorPane.getChildren().add(lineChart);
System.out.println(region.getBoundsInParent());
}
public static void main(String[] args) {
launch();
}
}
输出:BoundingBox [minX:0.0, minY:0.0, minZ:0.0, width:0.0, height:0.0, depth:0.0, maxX:0.0, maxY:0.0, maxZ:0.0]
代码 2
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Region;
import javafx.stage.Stage;
public class Test8 extends Application {
@Override
public void start(Stage stage) {
AnchorPane anchorPane=new AnchorPane();
Scene scene=new Scene(anchorPane,600,400);
stage.setScene(scene);
LineChart<Number,Number> lineChart=new LineChart<>(new NumberAxis(),new NumberAxis());
Region region= (Region) lineChart.lookup(".chart-plot-background");
anchorPane.getChildren().add(lineChart);
stage.show();
System.out.println(region.getBoundsInParent());
}
public static void main(String[] args) {
launch();
}
}
输出:BoundingBox [minX:38.0, minY:10.0, minZ:0.0, width:443.0, height:346.0, depth:0.0, maxX:481.0, maxY:356.0, maxZ:0.0]
这两个代码段之间的唯一区别是命令的位置。stage.show()
问题
当图表驻留在 ?上面的两个代码片段是可修改的,还是我需要不同的方法?AnchorPane
答: 暂无答案
评论