找回密码
 会员注册
查看: 5|回复: 0

java怎么运行,java简单的用户登录界面

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-12-31 00:09:37 | 显示全部楼层 |阅读模式
1、新建LoginKit工具类 importjavafx.beans.property.SimpleBooleanPropertyimportjavafx.beans.property.SimpleObjectPropertyimportjavafx.beans.property.SimpleStringPropertyimportjavafx.scene.control.Buttonimportjavafx.scene.control.PasswordFieldimportjavafx.scene.control.TextFieldimportjavafx.scene.layout.Backgroundimportjavafx.scene.layout.BackgroundFillimportjavafx.scene.paint.Color/** * object 对象,相当于java单利 */objectUserName {valtext = SimpleStringProperty() }//密码objectPassWord {valtext = SimpleStringProperty() }//改变颜色objectBackGround {//设置颜色valblueColor = SimpleObjectProperty (Background(BackgroundFill(Color.BLUE,null,null)))valcyanColor = SimpleObjectProperty(Background(BackgroundFill(Color.CYAN,null,null)))valisRightColor = SimpleBooleanProperty(false) }/** * 数据绑定 */classLoginKit{//用户名字段的绑定funuserName(): TextField {returnTextField().apply { textProperty().bindBidirectional(UserName.text) } }//密码字段的绑定funpassWord(): PasswordField {returnPasswordField().apply { textProperty().bindBidirectional(PassWord.text) } }//登录按钮方法funloginBtn(): Button {returnButton("登录").apply {//通过事件获取用户名与密码的值setOnAction { println("账号:${UserName.text.value}") println("密码:${PassWord.text.value}") } } }//清除按钮funclearBtn(): Button {returnButton("清除").apply { setOnAction { UserName.text.value =""PassWord.text.value =""} } } } 2、新建登录视图类 这里使用kotlin的apply比较多,要有DSL的思想才好编写代码packagecom.rub.viewimportcom.rub.kit.BackGroundimportcom.rub.kit.LoginKitimportjavafx.application.Applicationimportjavafx.beans.binding.Whenimportjavafx.geometry.Insetsimportjavafx.geometry.Posimportjavafx.scene.Sceneimportjavafx.scene.control.Labelimportjavafx.scene.layout.BorderPaneimportjavafx.scene.layout.HBoximportjavafx.scene.layout.VBoximportjavafx.stage.StageclassLoginView:Application() {overridefunstart(stage:Stage?){//!!表示告诉kotlin编辑器,此值不要检查了。valst = stage!!varloginKit = LoginKit()//创建面板valborderPane = BorderPane().apply { backgroundProperty().bind( When(BackGround.isRightColor).then(BackGround.cyanColor).otherwise(BackGround.blueColor) )//鼠标进入界面改成true,即为青色,鼠标离开界面改成false,即为蓝色,setOnMouseEntered { BackGround.isRightColor.value =true} setOnMouseExited { BackGround.isRightColor.value =false}//内边距里padding = Insets(40.0) center = VBox(20.0).apply { alignment = Pos.CENTER children.add(HBox().apply { alignment = Pos.CENTER children.addAll(Label("账号:"), loginKit.userName()) }) children.add(HBox().apply { alignment = Pos.CENTER children.addAll(Label("密码:"), loginKit.passWord()) }) children.add(HBox(60.0).apply {//两个按钮之间的距离translateX =10.0alignment = Pos.CENTER children.addAll(loginKit.loginBtn(), loginKit.clearBtn()) }) } }valscene = Scene(borderPane) st.apply {this.scene = scene sizeToScene() title ="登录界面"//窗体不可变isResizable =falseshow() } } }//启动入口类funmain()= Application.launch(LoginView::class.java) 3、运行结果 功能实现鼠标进入界面改成true,即为青色,鼠标离开界面改成false,即为蓝色,点击按钮获取到文本框的值 image.png  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 13:16 , Processed in 0.431844 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表