So, I'm trying to iron out a problem, but the suggestions from intellij are less than helpful.
As the title suggests: I am working with JavaFX and see this error message.
Intellij recommended migrate actionEvent type to 'ActionEvent'. After selecting to migrate the type nothing changed and the error persisted. Then, I tried the next recommendation from Intellij: change parameter 'actionEvent' type to 'ActionEvent' which brings up a window that indicates a "Super Method Found" and my options are to change the base method (which is the jdbc jar file) or current method.
As an alternative I tried changing the import statements (that are denoted with "this import statement") and eventually made my way back to the original error after intellij recommended I change override function to a lambda function.
package sample;
//import java.awt.event.ActionEvent; //this import statement
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent; //this import statement
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
public class LoggedInController implements Initializable{
@FXML
private Button button_logout;
@FXML
private Label label_welcome;
@FXML
private Label label_super_pw;
@Override
public void initialize(URL location, ResourceBundle resources){
button_logout.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
//line below is where the error occurs
DBUtils.changeScene(actionEvent, "sample.fxml", "Log In", null, null);
}
});
}
/**
* This function displays the user's information once they log in
* @param username the user's display name
* @param super_pw the "super password" radio button that is selected when an account in created
*/
public void setUserInformation(String username, String super_pw){
label_welcome.setText("Welcome " + username + "!");
label_super_pw.setText("Your super secret password is: " + super_pw + ".");
}
}
As you noted, the error happens here:
And the error says the problem is with the
actionEventargument. More specifically, the type ofactionEventisjavafx.event.ActionEvent(as it should be) but thechangeScenemethod is defined to accept ajava.awt.event.ActionEventas the first argument. The former type is part of the JavaFX framework, whereas the latter type is from the AWT framework.I assume
DBUtilsis your own class. And since you're writing a JavaFX-based application, not an AWT-based one, the solution is to go into yourDBUtilssource file and replace:With:
In general, unless you're mixing UI frameworks (which you should not be unless you really need to and know what you're doing), you should avoid any imports from AWT and Swing when writing a JavaFX application.