我想将舞台设置为“UNDECORATED”,使其可拖动和最小化。问题是我找不到这样做的方法,因为我遇到的示例是通过插入主方法中的方法来实现的。
我想通过控制器类中声明的方法来完成这项工作,就像我如何使用下面的“WindowClose()”方法一样。
这是我使用 JavaFX 的第二天,如果这似乎是一个常识性问题。谢谢大家。
// Main Class/ Method
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Fxmltableview extends Application {
public static String pageSource = "fxml_tableview.fxml";
public static Scene scene;
@Override
public void start(Stage stage) throws Exception {
stage.initStyle(StageStyle.UNDECORATED);
stage.initStyle(StageStyle.TRANSPARENT);
Parent root = FXMLLoader.load(getClass().getResource(pageSource));
scene = new Scene(root, Color.TRANSPARENT);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
..
// The Controller
import javafx.application.Platform;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
public class FXMLTableViewController {
@FXML private TableView<Person> tableView;
@FXML private TextField firstNameField;
@FXML private TextField lastNameField;
@FXML private TextField emailField;
@FXML
protected void addPerson (ActionEvent event) {
ObservableList<Person> data = tableView.getItems();
data.add(new Person(
firstNameField.getText(),
lastNameField.getText(),
emailField.getText()
));
firstNameField.setText("");
lastNameField.setText("");
emailField.setText("");
}
public void WindowClose (ActionEvent event) {
Platform.exit();
}
}