博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javafx实现手机版QQ登录界面
阅读量:4873 次
发布时间:2019-06-11

本文共 2292 字,大约阅读时间需要 7 分钟。

功能介绍: 实现手机版QQ登录界面。

在线运行:

功能实现思路: 该QQ登陆界面主要使用的是GridPane布局,因为GridPane能很方便的把任意一个控件放到你想的地方,并且控制你的布局。

QQLogin类继承VBox,因为分成了2个GridPane, 使用VBox很放便的上下布局,并且能设置自动填充空白处。

效果图:

核心代码:

public void initLoginPane(){		StackPane picture = new StackPane();		ImageView image1 = new ImageView(new Image(getClass().getResourceAsStream("img/faceback.png")));		ImageView image2 = new ImageView(new Image(getClass().getResourceAsStream("img/h001.png")));		image2.setTranslateX(-7);		image2.setTranslateY(-9);		picture.getChildren().addAll(image1,image2);				ComboBox account = new ComboBox();		account.setMinHeight(35);		account.setPromptText("输入账号");		account.setEditable(true);		account.prefWidthProperty().bind(this.widthProperty().multiply(0.7));				PasswordField password = new PasswordField();		password.prefWidthProperty().bind(this.widthProperty().multiply(0.7));		password.setMinHeight(35);		password.setPromptText("输入密码");				CheckBox c1 = new CheckBox("记住密码");		c1.setStyle("-fx-text-fill:#000");		c1.setFont(new Font(15));		c1.setMinHeight(30);		c1.prefWidthProperty().bind(this.widthProperty().multiply(0.3));		Button b1 = new Button("登陆");		b1.setFont(new Font(15));		b1.setPrefWidth(80);		b1.setStyle("-fx-border-radius:2");		GridPane.setHalignment(b1, HPos.RIGHT);		GridPane.setMargin(b1, new Insets(0, 0, 0, 1));		loginPane.setHgap(10);		loginPane.setVgap(10);		loginPane.add(picture, 0, 0, 1, 2);		loginPane.add(account, 1, 0);		loginPane.add(password, 1, 1);		loginPane.add(c1, 0, 2);		loginPane.add(b1, 1, 2);		loginPane.setId("loginPane");		loginPane.setMinHeight(170);				Reflection ref = new Reflection();		ref.setFraction(0.1);		ref.setTopOpacity(0.1);		ref.setTopOffset(5);		loginPane.setEffect(ref);		getChildren().add(loginPane);	}

 代码说明: 第0,0存放了2副图片,使用StackPane布局,因为StackPane是堆栈布局,我希望把二副图片叠加在一起。但是StackPane是默认控件放在中间,子节点的布局由父类控制,所以我要移动图片只能够设置translate。你可以使用SceneView,去调节你的位置。

其中设置字体颜色.setStyle("-fx-text-fill:#000");

设置字体大小.setFont(new Font(15));

调节button的形状变成圆状:.setStyle("-fx-border-radius:2");

调节背景的形状变成圆状:-fx-background-radius:7;

对于GridPane布局,它所展示的大小,是你控件的大小,再加上Hgap或Vgap。如你设置gridPand大小100,但是你一行的二个最大column中的控件都是20,那么展示的时候就只有40。所以针对Grid布局的时候,若你想它展示宽度和设置宽度一样的话,那么你需要设置最大的控件的宽度。如上面我设置account占70%,c1占30%,这样GridPane就是按设置的大小展示。

转载于:https://www.cnblogs.com/javafx/archive/2013/03/28/2986054.html

你可能感兴趣的文章
Spark MLlib回归算法LinearRegression
查看>>
Hadoop MapReduce概念学习系列之mr的Shuffle(二十二)
查看>>
away3D案例3
查看>>
好的git教程
查看>>
Delphi XE增强的RTTI妙用--动态创建包中的窗口类
查看>>
unisynedit 在Delphi 2010下的编译问题
查看>>
mssql 动态行转列。
查看>>
工作杂记
查看>>
老话题,权限设计及实现!
查看>>
POJ 2393 贪心 简单题
查看>>
3. Quartz2D 绘制矩形、圆形、弧形
查看>>
latex 学习笔记
查看>>
SQL 数据库 学习 005 学习必备的一些操作 --- 如何新建数据库 如何附加和分离数据库(如何备份还原数据库) 如何删除数据库...
查看>>
[php排错] Forbidden You don't have permission to access / on this server.
查看>>
MVC中的helper标签
查看>>
Spring Cloud Gateway入门
查看>>
XCode 4.2 新功能 - Storyboard
查看>>
Tomcat不保存SESSIONS.ser设置
查看>>
QEMU使用手册 - 2 QEMU计算机系统模拟器
查看>>
VIM技巧之去除代码行号并缩进代码
查看>>