JavaFX桌面应用开发-GridPane(网格布局)

1:GridPane-网格布局 

为了演示这个布局 我们模拟做一个登录的窗口 如下效果 点击"清除"Button可以清除用户名和密码;点击"登录"Button会进行判断,登录成功就会跳转到另外一个页面,代码在下面 

package application;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Main4 extends Application{
	
	private Map map = null;
	
	//这个是准备的数据  用来模拟登录使用
	@Override
	public void init() throws Exception {
		
		map = new HashMap<String,String>();
		map.put("username", "password");
	}

	@Override
	public void start(Stage stage) throws Exception {
		
		Text name = new Text("用户名:");
		
		Text password = new Text("密码:");
		
		TextField e_name = new TextField();
		e_name.setPrefWidth(150);
		
		PasswordField e_password = new PasswordField();
		
		Button clear = new Button("清除");
		Button login = new Button("登录");
		
		//网格布局
		GridPane gridPane = new GridPane();
		//设置网格位置
		gridPane.add(name, 0, 0);
		gridPane.add(e_name, 1,0);
		gridPane.add(password, 0, 1);
		gridPane.add(e_password, 1, 1);
		gridPane.add(clear, 0,2);
		gridPane.add(login, 1,2);
		
		//设置单独组件的上下左右的间距
		GridPane.setMargin(login, new Insets(0,0,0,115));
		
		gridPane.setAlignment(Pos.CENTER);
		//设置垂直间距
		gridPane.setVgap(10);
		//设置水平间距
		gridPane.setHgap(5);

		Scene scene = new Scene(gridPane);
		
		stage.setScene(scene);
		stage.setTitle("布局类学习");
		stage.setHeight(300);
		stage.setWidth(500);
		stage.show();
		
		//绑定监听事件 clear清除
		clear.setOnAction(new EventHandler<ActionEvent>() {
			
			@Override
			public void handle(ActionEvent event) {
				
				//单击清除用户名和密码
				e_name.setText("");
				e_password.setText("");
				
			}
		});
		
		//对登录按钮绑定监听事件
		login.setOnAction(new EventHandler<ActionEvent>() {

			@Override
			public void handle(ActionEvent event) {
				
				String username = null;
				String password = null;
				//登录成功后
				Set set = map.entrySet();
				
				for (Object object : set) {
					
					String[] strings = object.toString().split("=");
					
					username = strings[0];
					password = strings[1];

				}
				
				if(e_name.getText().equals(username) && e_password.getText().equals(password)){
					
					stage.close();
					
					Stage stage2 = new Stage();
					
					stage2.setHeight(300);
					stage2.setWidth(500);
					stage2.show();
				}else{
					
					System.out.println("密码输入错误");
				}
				
			}
		});
		
	}
	
	public static void main(String[] args) {
		
		launch(args);
	}

}

 

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值