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();
	}
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pk5515

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值