JavaFX 2:创建登录表单

在本教程中,我将使用JavaFX 2和CSS设计漂亮的Login Form 。 它是经典的登录表单,带有用户名和密码以及登录按钮。 为了遵循本教程,我强烈建议您查看以下这些教程:
  • Eclipse IDE中的JavaFX 2入门
  • JavaFX 2:HBox
  • JavaFX 2:GridPane
  • JavaFX 2:样式按钮
  • JavaFX 2:使用文本和文本效果

用户名: JavaFX2 密码:密码

您可以在上方输入此信息,然后单击“登录”按钮。 它会提示您登录成功,但是如果输入错误信息,则会提示您登录不成功。
本教程的最终输出屏幕截图如下图所示。

JavaFX 2登录表单
JavaFX 2登录表单

这是我们示例的Java代码:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.Reflection;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;/**** @web http://zoranpavlovic.blogspot.com/*/
public class Login extends Application {String user = "JavaFX2";String pw = "password";String checkUser, checkPw;public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage primaryStage) {primaryStage.setTitle("JavaFX 2 Login");BorderPane bp = new BorderPane();bp.setPadding(new Insets(10,50,50,50));//Adding HBoxHBox hb = new HBox();hb.setPadding(new Insets(20,20,20,30));//Adding GridPaneGridPane gridPane = new GridPane();gridPane.setPadding(new Insets(20,20,20,20));gridPane.setHgap(5);gridPane.setVgap(5);//Implementing Nodes for GridPaneLabel lblUserName = new Label("Username");final TextField txtUserName = new TextField();Label lblPassword = new Label("Password");final PasswordField pf = new PasswordField();Button btnLogin = new Button("Login");final Label lblMessage = new Label();//Adding Nodes to GridPane layoutgridPane.add(lblUserName, 0, 0);gridPane.add(txtUserName, 1, 0);gridPane.add(lblPassword, 0, 1);gridPane.add(pf, 1, 1);gridPane.add(btnLogin, 2, 1);gridPane.add(lblMessage, 1, 2);//Reflection for gridPaneReflection r = new Reflection();r.setFraction(0.7f);gridPane.setEffect(r);//DropShadow effect DropShadow dropShadow = new DropShadow();dropShadow.setOffsetX(5);dropShadow.setOffsetY(5);//Adding text and DropShadow effect to itText text = new Text("JavaFX 2 Login");text.setFont(Font.font("Courier New", FontWeight.BOLD, 28));text.setEffect(dropShadow);//Adding text to HBoxhb.getChildren().add(text);//Add ID's to Nodesbp.setId("bp");gridPane.setId("root");btnLogin.setId("btnLogin");text.setId("text");//Action for btnLoginbtnLogin.setOnAction(new EventHandler() {public void handle(ActionEvent event) {checkUser = txtUserName.getText().toString();checkPw = pf.getText().toString();if(checkUser.equals(user) && checkPw.equals(pw)){lblMessage.setText("Congratulations!");lblMessage.setTextFill(Color.GREEN);}else{lblMessage.setText("Incorrect user or pw.");lblMessage.setTextFill(Color.RED);}txtUserName.setText("");pf.setText("");}});//Add HBox and GridPane layout to BorderPane Layoutbp.setTop(hb);bp.setCenter(gridPane);  //Adding BorderPane to the scene and loading CSSScene scene = new Scene(bp);scene.getStylesheets().add(getClass().getClassLoader().getResource("login.css").toExternalForm());primaryStage.setScene(scene);primaryStage.titleProperty().bind(scene.widthProperty().asString().concat(" : ").concat(scene.heightProperty().asString()));//primaryStage.setResizable(false);primaryStage.show();}
}

为了正确设置此应用程序的样式,您需要在项目的/ src文件夹中创建login.css文件。 如果您不知道该怎么做,请查看JavaFX 2:样式按钮教程 。

这是我们示例CSS代码:

#root {-fx-background-color:  linear-gradient(lightgray, gray);-fx-border-color: white;-fx-border-radius: 20;-fx-padding: 10 10 10 10;-fx-background-radius: 20;}#bp {-fx-background-color:  linear-gradient(gray,DimGrey );}#btnLogin {-fx-background-radius: 30, 30, 29, 28;-fx-padding: 3px 10px 3px 10px;-fx-background-color: linear-gradient(orange, orangered );
}#text {-fx-fill:  linear-gradient(orange , orangered);
}

多数民众赞成在本教程中,如果您有任何意见或问题,请随时发表评论。 如果您喜欢本教程,则可以在此博客上查看更多JavFX 2教程。

您可能想看一下下面的这些教程:

  • JavaFX 2:使用CSS设置按钮样式
  • JavaFX 2:使用CSS设置文本样式

参考: JavaFX 2:在Zoran Pavlovic博客博客上,从我们的JCG合作伙伴 Zoran Pavlovic 创建尼斯登录表单 。


翻译自: https://www.javacodegeeks.com/2012/06/in-this-tutorial-i-will-design-nice.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么解决tomcat占用8080端口问题

怎么解决tomcat占用8080端口问题 相信很多朋友都遇到过这样的问题吧,tomcat死机了,重启eclipse之后,发现Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already in use.The server may already be running in…

页面传值的方法 和JSON与字符串和对象之间的转换

json数据解析 就是将json转换为数组或对象 json数据序列化 就是将数组或对象转化为json转载于:https://www.cnblogs.com/yaomengli/p/6678709.html

JasperReports JSF插件用例系列

这是文章系列的切入点,在该系列文章中,我将尝试介绍JasperReport JSF Plugin的一些用例, JasperReport JSF Plugin是一种工具,旨在轻松地将为JasperReports设计的业务报告集成到JSF应用程序中。 该系列中描述的所有示例都可以从Ja…

回归分析

一元线性回归模型: 一元线性回归分析的主要任务是: 解得: 三、检验、预测与控制: 1)F检验法: 2)t检验法 3)r检验法 3预测: 四、可线性化的一元非线性回归(曲线…

与传统的计算机硬件系统相比,计算机一级名词解释

目前微型机中普遍采用的字符编码是ASCII码。它是用7位二进制数对127个字符进行编码,其中前32个是一些不可打印的控制符号。多媒体系统由主机硬件系统、多媒体数字化外部设备和多媒体软件三部分组成。机器语言和汇编语言都是"低级"的语言,而高级…

【java】对象变成垃圾被垃圾回收器gc收回前执行的操作:Object类的protected void finalize() throws Throwable...

1 package 对象被回收前执行的操作;2 class A{3 Override4 protected void finalize() throws Throwable {5 System.out.println("在对象变成垃圾被gc收回前执行的操作。");6 }7 }8 public class Test_finalize {9 public static void main(…

服务器 风扇测试软件,图解服务器风扇安装的正确方法

一般不是太垃圾的机箱总有两个地方可以装风扇,前面的一般在硬盘托架处,后面的一般在电源下面,键盘口上方。有的机箱出厂就已经装好1~2个风扇了。图中越红的区域温度相对越高。应该什么样的风道合理呢?1、前后都装机箱风扇的情况应…

处理Weblogic卡住的线程

定义或卡线是什么? 如果线程 在设定 的时间 内连续工作(非空闲),则WebLogic Server会将其诊断为阻塞 。 您可以通过更改在诊断出线程被阻塞之前的时间长度( Stuck Thread Max Time ),以及通过更…

电话圈(floyd)

题意: 如果两个人相互打电话,则说他们在同一个电话圈里。例如,a打给b,b打给c,c打给d,d打给a,则这4个人在同一个圈里;如果e打给f但f不打给e,则不能推出e和f在同一个电话圈…

计算机二级网址打不开,大神为你解决win7系统打不开二级网页链接的操作教程...

许多win7系统电脑的时候,常常会遇到win7系统打不开二级网页链接的情况,比如近日有用户到本站反映说win7系统打不开二级网页链接的问题,但是却不知道要怎么解决win7系统打不开二级网页链接,我们依照首先我们打开IE浏览器,然后点击上…

3步实现Jetty和Eclipse集成

本教程将引导您逐步了解如何集成Jetty和Eclipse,以及如何在Eclipse中的Jetty服务器上运行Web应用程序。 脚步: 安装Jetty Eclipse插件 建立网路应用程式 运行网络应用 1 –安装Jetty Eclipse插件 将服务器添加到“服务器”视图时,将不会…

使用Akka处理1000万条消息

Akka演员承诺并发。 有什么更好的模拟方式,看看使用商品硬件和软件处理1000万条消息需要花费多少时间,而无需进行任何低级调整。我用Java编写了整个1000万条消息的处理过程,整个结果令我惊讶。 当我在具有Intel i5 – 4核,4 Gb RA…

dart服务器开发性能,DartVM服务器开发(第四天)--代码优化

优化请求上一篇文章中,我们通过依赖第三方http_server这个包实现将html页面返回给浏览器,但是一般的服务器都包含请求html,json格式的传递,这样就有可能造成了混乱,下面我们使用http_server这个包进行优化吧&#xff0…

【Android】SVG和VectorDrawable——相关格式转换

SVG是矢量图,刚接触尚不能仔细介绍,但只需记得一点:放大不失真,存储也方便。 因为多数户型图使用SVG格式,Android要用的话必须通过相关转换工具,将原SVG格式文件,转换为XML后缀的VectorDrawable…

css中基线指的是哪一条线,如何设置基线网络_CSS, Vertical Rhythm 教程_W3cplus

首先,当谈到排版,我们先要了解基线是什么?维基百科是这样定义)的:在排版和书法中,基线是以字终sit底线为基础,并且向两边延伸的直线。好极了,但我为什么要忽视他呢?好希望你充满激情…

使用JGroups进行ElasticMQ消息复制

ElasticMQ是一台消息服务器,具有Scala,Java和与Amazon SQS兼容的接口。 它通过跨服务器群集复制消息来支持有保证的消息传递,并通过日志记录实现消息持久性。 消息复制是ElasticMQ的核心功能之一。 但是,如果您看一下代码&#xf…

Spring Social入门

像我一样,无论是添加简单的Facebook“赞”按钮,一大堆“共享”按钮还是显示时间轴信息,您都不会注意到当前对应用程序“社交化”的热衷。 每个人都在做这件事,包括Spring的家伙,事实上,他们提供了一个称为S…

apache ajax 跨域访问,Apache 实现AJAX跨域请求

当使用ajax跨域请求时,浏览器报错:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.肯定是跨域的问题,如果用jsonp或者pro更多:当使用ajax跨域请求时,浏览器报错:XmlHtt…

EhCache复制:RMI与JGroups

最近,我正在研究一种需要复制缓存的产品。 缓存提供程序已经确定-EhCache,剩下的就是有关传输的问题。 哪一个是最佳选择? 这里的最佳选择是指性能更好的选择。 仅在两个可用传输之间进行了性能评估-JGroups和RMI,对其他传输不予考…

服务器wifi无线放大器,一回家WiFi信号太弱?教你用两毛钱制作信号放大器

原标题:一回家WiFi信号太弱?教你用两毛钱制作信号放大器现在家家户户都有无线路由器,但是大部分人都还是早期的单天线产品,信号覆盖范围比较小,特别是穿墙性能不行。人在客厅WiFi信号还满格,一到卧室就瞬间…