广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
SIEMENS西门子广西省南宁市(授权)电机一级代理商——西门子华南总代理

1.构造器和初始化方法的执行顺序

测试Controler中构造器和初始化方法的执行顺序:   

public class MainViewController {

    public MainViewController() {

    System.out.println("first");

}

@FXML

public void initialize() {

    System.out.println("second");

    }

}

结果为:


总结:

首先调用构造函数,然后填充任何@FXML注释字段,然后调用initialize()。因此,构造函数无法访问引用在.fxml文件中定义的组件的@FXML字段,而initialize()可以访问它们。


2.BarChar无法显示图形

Main; javafx.collections.FXCollections; javafx.event.ActionEvent; javafx.fxml.Initializable; javafx.scene.chart.BarChart; javafx.scene.chart.CategoryAxis; javafx.scene.chart.NumberAxis; javafx.scene.chart.XYChart; javafx.scene.layout.BorderPane; java.net.URL; java.util.Arrays; java.util.ResourceBundle; Controller Initializable {     BarChart<String, Number> ;     CategoryAxis ;     NumberAxis ;     BorderPane ;     initialize(URL location, ResourceBundle resources) {         = CategoryAxis();         .setCategories(FXCollections.<String>(Arrays.(, , , )));         .setLabel();         = NumberAxis();         .setLabel();         = BarChart<>(, );         .setTitle();         XYChart.Series<String, Number> series1 = XYChart.Series<>();         series1.setName();         series1.getData().add(XYChart.Data<>(, ));         series1.getData().add(XYChart.Data<>(, ));         series1.getData().add(XYChart.Data<>(, ));         series1.getData().add(XYChart.Data<>(, ));         XYChart.Series<String, Number> series2 = XYChart.Series<>();         series2.setName();         series2.getData().add(XYChart.Data<>(, ));         series2.getData().add(XYChart.Data<>(, ));         series2.getData().add(XYChart.Data<>(, ));         series2.getData().add(XYChart.Data<>(, ));         XYChart.Series<String, Number> series3 = XYChart.Series<>();         series3.setName();         series3.getData().add(XYChart.Data<>(, ));         series3.getData().add(XYChart.Data<>(, ));         series3.getData().add(XYChart.Data<>(, ));         series3.getData().add(XYChart.Data<>(, ));         .getData().addAll(series1, series2, series3);     }     settingBtnClick(ActionEvent actionEvent) {     } }


执行上述程序时,无法显示条状图,经过看视频总结出问题所在,xAxis,yAxis,和Production不能在初始化方法中再此创建实例。FXML通过反射已经创建过实例,因此在初始化方法中直接使用即可。去掉三个的new方法后正常显示。

 initialize(URL location, ResourceBundle resources) {         .setCategories(FXCollections.<String>(Arrays.(, , , )));         .setLabel(); .setLabel();         .setTitle();         XYChart.Series<String, Number> series1 = XYChart.Series<>();         series1.setName();         series1.getData().add(XYChart.Data<>(, ));         series1.getData().add(XYChart.Data<>(, ));         series1.getData().add(XYChart.Data<>(, ));         series1.getData().add(XYChart.Data<>(, ));         XYChart.Series<String, Number> series2 = XYChart.Series<>();         series2.setName();         series2.getData().add(XYChart.Data<>(, ));         series2.getData().add(XYChart.Data<>(, ));         series2.getData().add(XYChart.Data<>(, ));         series2.getData().add(XYChart.Data<>(, ));         XYChart.Series<String, Number> series3 = XYChart.Series<>();         series3.setName();         series3.getData().add(XYChart.Data<>(, ));         series3.getData().add(XYChart.Data<>(, ));         series3.getData().add(XYChart.Data<>(, ));         series3.getData().add(XYChart.Data<>(, ));         .getData().addAll(series1, series2, series3);     }



展开全文
相关产品
拨打电话 微信咨询 发送询价