第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

由于 FXML 文件中的控制器更改而導(dǎo)致線程異常

由于 FXML 文件中的控制器更改而導(dǎo)致線程異常

UYOU 2023-09-27 10:10:48
我有一個(gè)多場景程序。我已經(jīng)完成了 GUI 和按鈕(允許更改窗口)的工作。隨著我的程序的進(jìn)展,我不希望每個(gè)方法都在同一個(gè)控制器上。當(dāng)我更改 FXML 文件響應(yīng)的控制器時(shí),我收到一個(gè)我不明白的擁抱錯(cuò)誤。這是我的 module-info.java 文件。module Genesis {requires javafx.fxml;requires javafx.controls;opens genesismx;}與我想要連接到其他控制器的窗口相對(duì)應(yīng)的 FXML 文件是這樣的(與問題相關(guān)的部分):<?xml version="1.0" encoding="UTF-8"?><?import javafx.geometry.Insets?><?import javafx.scene.control.Button?><?import javafx.scene.control.ComboBox?><?import javafx.scene.control.Label?><?import javafx.scene.control.RadioButton?><?import javafx.scene.control.TextField?><?import javafx.scene.control.ToggleGroup?><?import javafx.scene.layout.ColumnConstraints?><?import javafx.scene.layout.GridPane?><?import javafx.scene.layout.HBox?><?import javafx.scene.layout.Pane?><?import javafx.scene.layout.RowConstraints?><?import javafx.scene.text.Font?><GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="720.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" ///fx:controller="genesismx.menuAgregarDatos.datos"></GridPane>在我改變控制器之前是這樣的:<GridPane fx:controller="genesismx.menupController"></GridPane>文件連接到的控制器是這樣的(menupController.java):package genesismx;import javafx.event.ActionEvent;import javafx.fxml.FXMLLoader;import javafx.scene.Node;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.stage.Stage;import java.io.IOException;public class menupController {    public void aPantPago(ActionEvent event) throws IOException {        Parent root = FXMLLoader.load(getClass().getResource("menuAgregarDatos/AgregarPago.fxml"));        Scene menupScene = new Scene(root);        //Para conseguir la info del stage        Stage window = (Stage) ((Node)event.getSource()).getScene().getWindow();        window.setScene(menupScene);        window.show();    }}其中“Parent root =” .... 的部分是我應(yīng)該收到錯(cuò)誤的行。
查看完整描述

2 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

opens/exports以每個(gè)包為基礎(chǔ)工作。你導(dǎo)出的是,但不是包含( )genesismx的包。(包和在java中是完全獨(dú)立的包;前者被認(rèn)為是后者包的一部分。)genesismx.menuAgregarDatos.datosgenesismx.menuAgregarDatosgenesismx.menuAgregarDatosgenesismx

您的以下行module-info允許FXMLLoader訪問控制器類的成員以注入數(shù)據(jù):

opens genesismx.menuAgregarDatos to javafx.fxml;

注意:我強(qiáng)烈建議遵守 java 命名約定:類型名稱應(yīng)以大寫字母開頭。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

我認(rèn)為出現(xiàn)這種情況是由于這個(gè)嘗試從根包設(shè)置正確的路徑:-


package genesismx;


import javafx.event.ActionEvent;

import javafx.fxml.FXMLLoader;

import javafx.scene.Node;

import javafx.scene.Parent;

import javafx.scene.Scene;

import javafx.stage.Stage;

import java.io.IOException;


public class menupController {

    public void aPantPago(ActionEvent event) throws IOException {

        Parent root = FXMLLoader.load(getClass().getResource("/genesismx/menuAgregarDatos/AgregarPago.fxml"));

        Scene menupScene = new Scene(root);

        //Para conseguir la info del stage

        Stage window = (Stage) ((Node)event.getSource()).getScene().getWindow();

        window.setScene(menupScene);

        window.show();

    }}

您可以學(xué)習(xí) MVC(模型-視圖-控制器)技術(shù)嗎?這將是您的最佳選擇,并且非常容易實(shí)現(xiàn),因?yàn)槟夸浟骺梢宰屇玫亓私鈶?yīng)用程序中的數(shù)據(jù)流。謝謝。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)