【发布时间】:2017-08-26 09:03:11
【问题描述】:
所以我正在编写一个程序,用于自动更新 Windows 机器。昨天我刚刚保存了程序的当前工作状态并回家了。今天,当我尝试对其进行处理时,我注意到它正在编译并且运行时没有错误,但显示了非结束 javaFx GUI。我花了好几个钱试图修复它。我用 eclipse neon.3 清理了项目,我重建了 meaven 项目,我用新类创建了新项目,然后将代码复制到其中。我什至将项目从 Eclipse 移动到 IntelliJ 并在那里运行。行为是一样的。
所以我的主要看起来像这样,没什么特别的。我加载主 fxml 主要对象是 tableView 和一些辅助信息。
@Override
public void start(Stage primaryStage) throws IOException, InterruptedException, InvalidFormatException {
tableList = makeMainList();
JavaFXmainClass.primaryStage = primaryStage;
JavaFXmainClass.primaryStage.setTitle("xD Pro Windows Updater Manager Ascendet Master OP xD");
showMainView();
}
public void showMainView() throws IOException{
final FXMLLoader loader = new FXMLLoader();
System.out.println(this.getClass().getResource("fxml//MainView.fxml"));
loader.setLocation(this.getClass().getResource("fxml//MainView.fxml"));
mainLayout = loader.load();
Scene scene = new Scene(mainLayout);
primaryStage.setScene(scene);
System.out.println("On the end of showMainView()");
}
public static void main(String[] args) {
launch(args);
}
在主控制器中,我以这种方式初始化表格。
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
//setting combobox items
StartTime.getItems().addAll(comboBoxValues);
EndTime.getItems().addAll(comboBoxValues);
StartTime.setPromptText("Start Time");
EndTime.setPromptText("End Time");
//adding listiner for combobox
addComboBoxChangeListiner(StartTime, What.STARTTIME);
addComboBoxChangeListiner(EndTime, What.ENDTIME);
setColumns();
mainTable = JavaFXmainClass.getTableList();
tableList = fromArrayToObservableArray(mainTable, tableList);
System.out.println(mainTable.size());
System.out.println("before tableView.setItems");
tableView.setItems(mainTable);
System.out.println("after tableView.setItems");
}
private void setColumns() {
tableView.setFixedCellSize(35);
id.setCellValueFactory(new PropertyValueFactory<Id,Integer>("id"));
ip.setCellValueFactory(new PropertyValueFactory<Server,String>("ip"));
name.setCellValueFactory(new PropertyValueFactory<Server,String>("name"));
type.setCellValueFactory(new PropertyValueFactory<Server,String>("type"));
date.setCellValueFactory(new PropertyValueFactory<Server,LocalDate>("date"));
id.setCellFactory(new LineNumberCellFactory());
ip.setCellFactory(new getObjectIp());
}
在 consol 输出上我可以读取 “在 tableView.setItems 之后” 进而 “在 showMainView() 结束时” 所以这意味着注入依赖已经成功结束(我是对的?) 之后没有任何错误程序正在运行,但 gui 没有出现
fxml 与我添加为链接有关,因为它太大而无法像其他示例一样粘贴:https://codepaste.net/z06nzf
【问题讨论】:
标签: java user-interface intellij-idea javafx-8 eclipse-neon