1:Text-文本输入组件的基本使用

  • 功能:输入文本信息

1.1:代码实现与想象

package application;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

public class Main extends Application {

	@Override
	public void start(Stage primaryStage) throws Exception {
		
		//创建Text
		//注意:Group容器组会自适应调节node节点的高、宽 以容纳node节点的内容 例如:如果下面Button的text内容比较多 那么对应的Text会相应加长
		TextField text = new TextField();
		text.setLayoutX(200); //设置起始点的X轴坐标
		text.setLayoutY(50); //设置起始的Y轴坐标		
		//设置Text的宽度 高度
		text.setPrefWidth(100);
		text.setPrefHeight(20);
		
		//设置Group
		Group group = new Group();
		group.getChildren().add(text);
		
		//创建场景Scene
		Scene scene = new Scene(group);
		
		primaryStage.setScene(scene);
		//设置stage的宽度 高度
		primaryStage.setHeight(500);
		primaryStage.setWidth(500);		
		primaryStage.show();				
	}

	public static void main(String[] args) {
		launch(args);
	}
}

javaswing文本框事件 javafx文本框_Text

1.2:Text组件中设置提示信息

//对Text设置提示信息 当鼠标聚焦到text文本框上 会显示出该提示信息
Tooltip tooltip = new Tooltip();
tooltip.setText("这是提示信息");
		
text.setTooltip(tooltip);

javaswing文本框事件 javafx文本框_提示信息_02

1.3:设置text框中的PromptText提示信息

//设置PromptText
text.setPromptText("请输入正确的密码");
text.setFocusTraversable(false);//设置聚焦到text文本中时 PromptText消失

javaswing文本框事件 javafx文本框_Text_03

2:文本输入组件的监听动作

2.1:限制输入长度

思路:ChangeListener监听器会监听改变前和改变后的值 如果改变后的值的长度大于7(举例子)则将text文本设置为改变前的值

text.textProperty().addListener(new ChangeListener<String>() {

	@Override
	public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
				
		//oldValue为每次输入的上一次的值
		System.out.println("oldValue = "+oldValue);
		//newValue为每次输入最新的值
		System.out.println("newValue = "+newValue);
				
		//限制输入长度为7 即如果输入的长度大于7 则将text的文本值设置为oldValue
		if(newValue.length() > 7){
					
			text.setText(oldValue);
		}				
	}
});

2.2:文本选择监听器

text.selectedTextProperty().addListener(new ChangeListener<String>() {

	@Override
	public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
				
		System.out.println(newValue);
	}
});

运行结果

javaswing文本框事件 javafx文本框_Group_04

3:Password文本输入框

Password输入框与Text输入框几乎完全一致 

//注意:Group容器组会自适应调节node节点的高、宽 以容纳node节点的内容 例如:如果下面Button的password内容比较多 那么对应的password会相应加长
PasswordField password = new PasswordField();
password.setLayoutX(200); //设置起始点的X轴坐标
password.setLayoutY(50); //设置起始的Y轴坐标
package application;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.PasswordField;
import javafx.scene.control.Tooltip;
import javafx.stage.Stage;

public class Main extends Application {

	@Override
	public void start(Stage primaryStage) throws Exception {
		
		//创建password
		//注意:Group容器组会自适应调节node节点的高、宽 以容纳node节点的内容 例如:如果下面Button的password内容比较多 那么对应的password会相应加长
		PasswordField password = new PasswordField();
		password.setLayoutX(200); //设置起始点的X轴坐标
		password.setLayoutY(50); //设置起始的Y轴坐标		
		//设置password的宽度 高度
		password.setPrefWidth(100);
		password.setPrefHeight(20);
		//对password设置提示信息 当鼠标聚焦到password文本框上 会显示出该提示信息
		Tooltip tooltip = new Tooltip();
		tooltip.setText("这是提示信息");
		
		password.setTooltip(tooltip);
		
		//设置PromptText
		password.setPromptText("请输入正确的密码");
		password.setFocusTraversable(false);//设置聚焦到password文本中时 PromptText消失
		
		password.textProperty().addListener(new ChangeListener<String>() {

			@Override
			public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
				
				//oldValue为每次输入的上一次的值
				//System.out.println("oldValue = "+oldValue);
				//newValue为每次输入最新的值
				//System.out.println("newValue = "+newValue);
				
				//限制输入长度为7 即如果输入的长度大于7 则将password的文本值设置为oldValue
				if(newValue.length() > 7){
					
					password.setText(oldValue);
				}
				
			}
		});
		
		password.selectedTextProperty().addListener(new ChangeListener<String>() {

			@Override
			public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
				
				System.out.println(newValue);
			}
		});
		
		//设置Group
		Group group = new Group();
		group.getChildren().add(password);
		
		//创建场景Scene
		Scene scene = new Scene(group);
		
		primaryStage.setScene(scene);
		//设置stage的宽度 高度
		primaryStage.setHeight(500);
		primaryStage.setWidth(500);		
		primaryStage.show();				
	}

	public static void main(String[] args) {
		launch(args);
	}
}

4:Label--标签组件

//注意:Group容器组会自适应调节node节点的高、宽 以容纳node节点的内容 例如:如果下面Button的Label内容比较多 那么对应的Label会相应加长
Label label = new Label("我是标签");
label.setLayoutX(200); //设置起始点的X轴坐标
label.setLayoutY(50); //设置起始的Y轴坐标