Я пытаюсь создать свой первый графический интерфейс на JavaFX. Вот что я сделал до сих пор:
Основной:
package ZVCVolkel_GUI;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("LoginScreen.fxml"));
primaryStage.setTitle("Zweegvliegclub Volkel");
primaryStage.setScene(new Scene(root, 322.0, 182.0));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Контроллер:
package ZVCVolkel_GUI;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXPasswordField;
import com.jfoenix.controls.JFXTextField;
import javafx.fxml.FXML;
import javax.swing.*;
import java.awt.event.ActionEvent;
public class Controller {
@FXML
private JFXTextField username;
@FXML
private JFXPasswordField password;
@FXML
private JFXButton login;
@FXML
void makeLogin(ActionEvent event){
String user = username.getText();
String pass = password.getText();
if (user.equals("Admingeb") && pass.equals("Adminww")){
System.out.println("Welcome");
}else{
System.out.println("Access denied");
}
}
}
FXML файл
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXPasswordField?>
<?import com.jfoenix.controls.JFXTextField?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane prefHeight = "182.0" prefWidth = "322.0" xmlns = "http://javafx.com/javafx/8.0.121" xmlns:fx = "http://javafx.com/fxml/1" fx:controller = "ZVCVolkel_GUI.Controller">
<children>
<Label layoutX = "79.0" layoutY = "14.0" text = "Inloggen bij ZVC Volkel">
<font>
<Font name = "System Bold" size = "15.0" />
</font>
</Label>
<JFXButton fx:id = "login" blendMode = "SRC_ATOP" layoutX = "128.0" layoutY = "132.0" mnemonicParsing = "false" onAction = "#makeLogin" text = "Inloggen">
<font>
<Font name = "System Bold" size = "12.0" />
</font>
</JFXButton>
<JFXPasswordField fx:id = "password" layoutX = "94.0" layoutY = "79.0" promptText = "Wachtwoord" />
<JFXTextField fx:id = "username" layoutX = "94.0" layoutY = "54.0" promptText = "Gebruikersnaam" />
</children>
</AnchorPane>
Теперь, когда я пытаюсь выполнить его, я получаю сообщение об ошибке onAction на моем JFXButton «Невозможно разрешить символ». Когда я удаляю onAction, он работает нормально, но он мне действительно нужен, чтобы иметь полезную программу. У кого-нибудь есть идея, почему мой onAction не работает?




import javax.swing.*;
import java.awt.event.ActionEvent;
это приложение FX, и вы пытаетесь использовать awt. Измените реализацию FX следующим образом:
import javafx.event.ActionEvent;
это должно помочь