JavaFX输入框,密码框,标签

package com.pan;
import javafx.application.*;
import javafx.beans.value.*;
import javafx.event.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.stage.*;
public class Main extends Application {
	public static void main(String[] args) {
		launch(args);
	}
	@Override
	public void start(Stage primaryStage) throws Exception {
		Group root = new Group();
		Scene scene = new Scene(root);
		primaryStage.setScene(scene);
		primaryStage.setWidth(800);
		primaryStage.setHeight(600);
		primaryStage.setTitle("JavaFX");
		
		
		//创建输入框,输入框和Button一样,都是Node,有相同的设置方法
		TextField text = new TextField();
		text.setLayoutX(50);
		//设置提示,Node结点都有setTooltip方法
		Tooltip  tip = new Tooltip("这是提示");//括号里面是默认文本
		//tip.setStyle();//提示也可以设置样式
		text.setTooltip(tip);
		text.setPromptText("请输入7个字以下");//设置隐式提示
		text.setFocusTraversable(false);//关闭初始焦点
		
		//文本框监听器,每一次改变文本框中的值都会被监听
		text.textProperty().addListener(new ChangeListener<String>() {
			@Override
			public void changed(ObservableValue<? extends String> arg0, String arg1, String arg2) {
				if(arg2.length() > 7) {//设置文本最大长度,arg1是旧String,arg2是新的String
					text.setText(arg2);
				}
			}
		});
		
		//文本框中的文字选中监听器,arg2是当前选中值,arg1是前一个选中值
		text.selectedTextProperty().addListener(new ChangeListener<String>() {
			@Override
			public void changed(ObservableValue<? extends String> arg0, String arg1, String arg2) {
				System.out.println(arg2);
			}		
		});
		//文本框的确定按钮,按Enter键生效
		text.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent arg0) {
				System.out.println("你按enter键确认了文本框的输入");
			}
		});
		
		//文本框的单击事件
		text.setOnMouseClicked(new EventHandler<Event>() {
			@Override
			public void handle(Event arg0) {
				System.out.println("你单击了一下文本框");
			}
		});
		
		
		//密码框,也都属于Node,跟文本框设置一样
		PasswordField ptext = new PasswordField();
		ptext.setLayoutY(40);
		ptext.setLayoutX(50);
		ptext.setPromptText("最多15位");//设置隐式提示
		ptext.setFocusTraversable(false);//关闭初始焦点
		ptext.textProperty().addListener(new ChangeListener<String>() {
			@Override
			public void changed(ObservableValue<? extends String> arg0, String arg1, String arg2) {
				if(arg2.length() > 15) {
					ptext.setText(arg1);
				}
			}
		});
		
		//设置标签
		Label l1 = new Label("文本框");
		Label l2 = new Label("密码框");
		l1.setLayoutY(5);
		l2.setLayoutY(45);
		//设置单击标签事件
		l1.setOnMouseClicked(new EventHandler<Event>() {
			@Override
			public void handle(Event arg0) {
				System.out.println("你单机了文本框标签一下");
			}
		});
		l2.setOnMouseClicked(new EventHandler<Event>() {
			@Override
			public void handle(Event arg0) {
				System.out.println("你单机了密码框标签一下");
			}
		});
	
		root.getChildren().addAll(text,ptext,l1,l2);
		primaryStage.show();
	}
}

你可能感兴趣的:(javafx,java)