Spr*_*ner 3 java javafx javafx-2
我正在为javafx练习做饼图.以下是开发饼图的代码.如果我使用Group和StackPane,我发现输出没有区别.我已经评论了集团部分.只是在两者之间徘徊.
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.chart.PieChart.Data;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ChartApp1 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
PieChart pieChart = new PieChart();
//Group p=new Group();
pieChart.setData(getChartData());
primaryStage.setTitle("PieChart");
StackPane root = new StackPane();
root.getChildren().add(pieChart);
//p.getChildren().add(pieChart);
primaryStage.setScene(new Scene(root, 400, 250));
primaryStage.show();
}
private ObservableList<PieChart.Data> getChartData() {
ObservableList<PieChart.Data> answer = FXCollections.observableArrayList();
answer.addAll(new PieChart.Data("java", 17.56),
new PieChart.Data("C", 17.06),
new PieChart.Data("C++", 8.25),
new PieChart.Data("C#", 8.20),
new PieChart.Data("ObjectiveC", 6.8),
new PieChart.Data("PHP", 6.0),
new PieChart.Data("(Visual)Basic", 4.76),
new PieChart.Data("Other", 31.37));
return answer;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
根据官方文件,
StackPane以一种从后到前的堆栈展示其子项.子项的z顺序由子列表的顺序定义,其中第0个孩子是最下面的孩子,最后一个孩子在最上面.如果已设置边框和/或填充,则子项将在这些插入内部布置.
堆栈窗口将尝试调整每个子节点的大小以填充其内容区域.如果孩子不能调整大小以填补stackpane(可能是因为它是不可调整大小或它的最大大小防止它),然后将它对准的区域内使用对齐属性,它默认为Pos.CENTER
虽然该课程的官方文件说明了这Group一点
一组节点包含ObservableList被孩子的 渲染,从而只要节点被渲染.一个集团将承担其子女的集体界限,不能直接 调整大小.
应用于组的任何变换,效果或状态都将应用于该组的所有子项.此类转换和效果不会包含在此组的布局范围中,但是如果直接在此组的子项上设置转换和效果,则这些转换和效果将包含在此组的布局范围中.
默认情况下,组将在布局过程中将其可管理的可调整大小的子项"自动调整"为其首选大小,以确保区域和控件在其状态更改时的大小正确.如果应用程序需要禁用此自动调整大小的行为,则应将autoSizeChildren设置为false,并了解如果子项的首选大小发生更改,则不会自动调整大小.
| 归档时间: |
|
| 查看次数: |
9654 次 |
| 最近记录: |