Java Fx开发基础

序言

学习Java基础有一段时间了,想着怎么应用到实践中,自己开发些小工具应该是最好的java基础练习方法了,既然是工具的话,肯定会要有用户界面。因为基于java开发的主要的面向网络应用,基于Java的可用的GUI不多,JavaFx是Oracle推荐使用的可用于界面开发的GUI, 用来做小工具是不错的。

Javafx安装

关于如何在Eclipse上安装Javafx插件,网上有很多的教程,可参看下面这个blog.
安装e(fx)clipse到Eclipse

新建JavaFX工程

在这里插入图片描述

关于JavaFX布局

新建工程后会自动生成一个.fxml布局文件,右击该文件,选择使用Scene Builder打开,我们就可以使用Scene Builder 工具进行拖拽进行控件布局了。
在这里插入图片描述

关于Containers

我们先选择一个布局器(Containers),然后我们就拖拽控件在上面布局了,布局过程中我们还可以使用Preview功能查看整体布局效果。

关于控件

我们拖拽各种控件进行布局,其中一个最主要的参数ID需要设置,我们后续程序要以这个ID来访问这个控件。
在这里插入图片描述

如何在代码中引用控件

步骤1: 新建控制器文件

  1. 我们先新建一个与工程同名的控制器描述文件,如XXXXController.java.
    在该文件里我们显示导出需要被使用到的控件,代码如下:
package application;

import javafx.fxml.FXML;
import javafx.scene.control.TextArea;;

public class KHJSONController {
	@FXML private TextArea ID_TEXTAREA_JSON_CONTENT;
	@FXML private TextArea ID_TEXTAREA_HEX_FRAME;
	
	
}

步骤2:代码引用控件
代码引用控件,代码如下:

 Parent root = FXMLLoader.load(getClass().getResource("KHJSON.fxml"));
TextArea textArea = (TextArea)root.lookup("#ID_TEXTAREA_JSON_CONTENT");
TextArea textAreaHexFrameContent = (TextArea)root.lookup("#ID_TEXTAREA_HEX_FRAME");
Button button = (Button)root.lookup("#ID_BUTTON_GENERATE_FRAME");

关于窗体大小自适应

我们可以使用ToolKit获取当前屏幕大小,然后可以按比例设置窗体大小,以做到屏幕自适应。

 Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
	       primaryStage.setScene(new Scene(root, dimension.getWidth()/2, dimension.getHeight()/4*3));
	       primaryStage.show();

完整 代码实例

public class Main extends Application {
	@Override
	public void start(Stage primaryStage) {
		try {
		   Parent root = FXMLLoader.load(getClass().getResource("KHJSON.fxml"));
	       TextArea textArea = (TextArea)root.lookup("#ID_TEXTAREA_JSON_CONTENT");
	       TextArea textAreaHexFrameContent = (TextArea)root.lookup("#ID_TEXTAREA_HEX_FRAME");
	        Button button = (Button)root.lookup("#ID_BUTTON_GENERATE_FRAME");
	        
	        button.setOnAction(new EventHandler<ActionEvent>() {
				
				@Override
				public void handle(ActionEvent event) {
					String JSONcontent = textArea.getText();
					textAreaHexFrameContent.setText(JSONcontent);
				}
			});
	        
	       Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
	       primaryStage.setScene(new Scene(root, dimension.getWidth()/2, dimension.getHeight()/4*3));
	       primaryStage.show();
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		launch(args);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值