UI控件 ->TextField

TextField 类实现了一个接收和显示文本输入的UI组件。它提供了从用户接收文本输入的功能。这个类和另一个文本输入组件PasswordField一样,都继承自TextInput 类。TextInput 类是JavaFX
API
中所有文本组件的超类。

package javafxui;


import javafx.scene.control.Button;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class LearnTextField extends Application{
	@Override
	public void start(Stage stage) {
		StackPane stackPane = new StackPane();
		
		/*@1
		 * 	创建文本域
		 * 		可以在任何时候通过 getText 方法获取Text Field的值
		 * 		setPrefColumnCount()是指同一时间可以显示的最大字符个数。
		 * 
		 */
		
		Label label1 = new Label("Name:");
		TextField textField = new TextField ();
		HBox hb = new HBox();
		hb.getChildren().addAll(label1, textField);
		hb.setSpacing(10);
		
		
		/*@2
		 * 	添加Text Field到Application
		 * 		setPromptText()设置提示文本
		 * 			提示文本和输入在Text Field中的文本的区别是提示文本无法通过getText 方法取得。
		 * 		GridPane.setConstraints(node, col, row);设置位置
		 */
		//创建GridPane容器
		GridPane grid = new GridPane();
		grid.setPadding(new Insets(10, 10, 10, 10));
		grid.setVgap(5);
		grid.setHgap(5);

		//定义Name Text Field
		final TextField name = new TextField();
		name.setPromptText("Enter your first name.");
		GridPane.setConstraints(name, 0, 0);
		grid.getChildren().add(name);

		//定义Last Name Text Field
		final TextField lastName = new TextField();
		lastName.setPromptText("Enter your last name.");
		GridPane.setConstraints(lastName, 0, 1);
		grid.getChildren().add(lastName);

		//定义Comment Text Field
		final TextField comment = new TextField();
		comment.setPromptText("Enter your comment.");
		GridPane.setConstraints(comment, 0, 2);
		grid.getChildren().add(comment);

		//定义Submit Button
		Button submit = new Button("Submit");
		//&1 GridPane.setConstraints(submit, 1, 0);
		grid.add(submit, 1, 0);//可代替 &1,&2
		//&2 grid.getChildren().add(submit);

		//定义Clear Button
		Button clear = new Button("Clear");
		GridPane.setConstraints(clear, 1, 1);
		grid.getChildren().add(clear);
		
		
		/*@3
		 * 	处理Text Field数据(行为)
		 * 	
		 * 	清除信息
		 * 		name.clear()
		 *   	lastName.clear()
		 *  	comment.clear()
		 * 		label.setText(null)
		 */
		
		final Label label = new Label();
		GridPane.setConstraints(label, 0, 3);
		GridPane.setColumnSpan(label, 2);
		grid.getChildren().add(label);

		submit.setOnAction((ActionEvent e) -> {
		    if (
		        (comment.getText() != null && !comment.getText().isEmpty())
		    ) {
		    label.setText(name.getText() + " " +
		        lastName.getText() + ", "
		        + "thank you for your comment!");
		    } else {
		        label.setText("You have not left a comment.");
		    }
		});

		clear.setOnAction((ActionEvent e) -> {
		    name.clear();
		    lastName.clear();
		    comment.clear();
		    label.setText(null);
		});
		
		/*@4
		 *	一些用于TextField的方法
		 *      · copy()– 将当前选中范围内的文本复制到剪切板,并保留选中的内容
    	 	 *	· cut()– 将当前选中范围内的文本复制到剪切板,并移除选中的内容
   		 *	· selectAll() – 选中Text Field中所有输入的文本
		 *	· paste()– 将剪切板中的内容粘贴到这个Text Field中,并替换当前选中的内容
		 * 
		 */
		
		
		
		Scene scene = new Scene(grid,300,300);
		stage.setScene(scene);
		stage.show();
		
	}
	
	
	public static void main(String[] args) {
		Application.launch(args);
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter是一种跨平台的移动应用程序开发框架,它提供了丰富的UI控件来构建应用的用户界面。 Flutter的UI控件可以分为基础控件和组合控件两种类型。 基础控件包括Text、Image、Button、TextField、Checkbox等常用的用户界面元素。这些控件可用于构建最基本的用户界面,例如显示文本、图片、处理用户输入等。开发者可以通过自定义这些控件的属性和样式来满足应用需求。 组合控件可以由多个基础控件组合而成,以实现更复杂和功能更强大的用户界面。例如,开发者可以将多个基础控件嵌套在一起,创建出自定义的界面模块。Flutter提供了丰富的组合控件,例如ListView(列表视图)、GridView(网格视图)、AppBar(应用栏)、BottomNavigationBar(底部导航栏)等,开发者可以根据应用需求选择合适的组合控件。 除了基础控件和组合控件,Flutter还提供了一些特殊的UI控件,用于处理特定场景的用户交互。例如,Flutter提供了Dialog(对话框)控件,用于显示弹出窗口,让用户进行选择或提供提示信息。Flutter还提供了SnackBar(消息提示条)控件,用于在屏幕底部显示临时的消息提示。 总结来说,Flutter提供了丰富多样的UI控件,开发者可以根据应用需求选择合适的控件来构建漂亮和交互性强的移动应用程序界面。无论是基础控件还是组合控件,Flutter都提供了详细的文档和示例代码,方便开发者学习和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值