简述
使用 Gradle 构建 Java 工程时,没有 JavaFx 的选项,所以需要自己添加。
使用Gradle 构建Java 工程
在IntelliJ IDEA 中使用 Gradle 工程构建完成后如下:
添加 JavaFx 文件
如下,在资源文件夹下新建FXML File
文件
打开刚才新建的文件,在红圈部分有Text
及 Scene Builder
两个选项卡,Text
显示是界面的描述,描述语言为xml,Scene Builder
显示的是预览界面,当然也可在里面编辑,想要什么排版布局,或者控件,直接拖拽出来就可以了。
将图下圈起来部分拖至箭头指向处
将Button 拖至界面空白处,也就是上一个动作拖出来的 AnchorPane
面板上,使Button 的fxid 命名为button,找到 On Action
,在里面填入 evenButton
.
再用相同的方法拖拽出 TextField ,将该控件fxid命名为 text,并且双击该控件,输入HelloWold 然后回车。
添加 Java 类
按图示新建 Java Class,然后在弹出框中选择 JavaFXApplication
如图
新建完成后显示如图
重新回到SerialAssistant.fxml
文件中,选择Text 显示,如图添加 fx:controller="SerialAssistant"
,如果已存在是不用添加的,SerialAssistant 就是刚才新建Java 的类名,
下面标签中有fx:id "button"
和fx:id="text"
就是界面上拖拽的两个控件名,notallow="#evenButton"
是刚才在界面上添加的button 的动作,将鼠标放在红圈部分的 text
上,按下 alt+enter 快捷键,弹出菜单,再按下enter 键
IDEA 便自动帮我们将 text 控件添加至 SerialAssistant 类中了。
使用相同的方法,将button 和evenButton 自动添加至 SerialAssistant 类中,完成后如下
最后将 SerialAssistant 类改成如下样子
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import java.io.IOException;
public class SerialAssistant extends Application {
public Button button;
public TextField text;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Parent root = null;
try {
root = FXMLLoader.load(getClass().getResource("SerialAssistant.fxml"));
primaryStage.setTitle("SerialAssistant");
primaryStage.setScene(new Scene(root));
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
public void evenButton(ActionEvent actionEvent) {
System.out.println(text.getText());
}
}
运行,点击button ,终端将会打印输入框中的文字。