【发布时间】:2018-05-29 01:17:03
【问题描述】:
我正在尝试创建一个 JavaFX 程序,每次当我从 jfoenix 库中添加任何东西时,我都会尝试运行我的代码,但我并不完全确定它的含义。 .
我的代码是:
public class home extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("home.fxml"));
Scene scene = new Scene(root,1300,768);
scene.getStylesheets().add(getClass().getResource("Style.css").toExternalForm());
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我的控制器是:
public class HomeController implements Initializable {
@FXML
private JFXButton log;
@FXML
private JFXButton engr;
@FXML
private Pane login,eng;
@FXML
private void changeofpages(MouseEvent event) {
if (event.getTarget()== log){
login.setVisible(true);
eng.setVisible(false);
}else
if (event.getTarget()== engr){
eng.setVisible(true);
login.setVisible(false);
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
【问题讨论】:
-
如果您遇到异常,请至少在问题中包含异常的全文(包括完整的堆栈跟踪,如果有的话)。 minimal reproducible example 有时会有所帮助。
-
@FXML在逗号分隔的变量列表上看起来很奇怪,@FXML private Pane login,eng;,我以前从未见过。它可能有效,也可能无效,我不知道。 -
你能发布你的 fxml 文件和你的堆栈跟踪吗?
-
为什么你用两个 fx:id 来标识窗格,这是不正确的。
-
当我运行它时:` 原因:java.lang.UnsupportedClassVersionError: com/jfoenix/controls/JFXTextField 已由 Java 运行时的更新版本(类文件版本 53.0)编译,这Java 运行时的版本仅在 java.lang.ClassLoader.defineClass1(Native Method)` 处识别最高 52.0 的类文件版本`