JAVA FX面板 基本使用

Application 是 JavaFX 程序的入口,任何 JavaFX 应用程序程序都要继承该类并重写 start() 方法 通过 main() 执行 Application 的 launch() 方法

public class Main extends Application {
@Override
public void start(Stage primaryStage) {
}
public static void main(String[] args) {
 Application.launch();
}
}

最重要的一步让代码显示效果,下面这个没有所有的代码都运行不了,在start里面使用

方法中的参数 primaryStage 表示的就是当前该程序的舞台对象。

primaryStage.show();

舞台(Stage)包含 场景(Scene),场景与布局绑定,布局中可以放入多个控件FlowPane 流式布局

FlowPane 它会在一行上排列连续的子组件,并且如果当前行填满了以后,则自动将子组件向下推到下一行。

FlowPane flowPane = new FlowPane();

Button 按钮

Button  b=new Button();

如果想要把一个控件给到该布局,简单来说就是将控件加入该子元素集合: 

//构建布局
FlowPane flowPane = new FlowPane();
//构建控件
Button l1=new Button("按钮一");
Button l2=new Button("按钮二");
Button l3=new Button("按钮三");
Button l4=new Button("按钮四");
Button l5=new Button("按钮五");
//将控件添加到该布局的子元素集合中
flowPane.getChildren().add(l1);
flowPane.getChildren().add(l2);
flowPane.getChildren().add(l3);
flowPane.getChildren().add(l4);
flowPane.getChildren().add(l5);

当控件填充完成之后,根据之前所述,我们需要将该布局与场景 Scene 进行绑定,可以在后面设置大小

Scene scene = new Scene(flowPane, 300, 300);
//以 flowPane 布局创建一个场景,大小是300*300

同时,需要将场景与主容器进行绑定,才能完成显示

primaryStage.setScene(scene);

完整代码如下

@Override
public void start(Stage primaryStage) throws IOException {
//新建布局
FlowPane flowPane = new FlowPane();
BorderPane 边框布局
该布局有顶部,底部,左,右与中心区域的五个区域,每个区域只能有一个节点。
该布局有5个区域可以放入控件,所以放入控件的时候需要指定应放在该布局的什么位置:
我们放入5个按钮到对应的位置:
//新建文本标签控件
Button l1=new Button("按钮一");
Button l2=new Button("按钮二");
Button l3=new Button("按钮三");
Button l4=new Button("按钮四");
Button l5=new Button("按钮五");
//将文本标签控件绑定到布局中
flowPane.getChildren().add(l1);
flowPane.getChildren().add(l2);
flowPane.getChildren().add(l3);
flowPane.getChildren().add(l4);
flowPane.getChildren().add(l5);
//生成场景并完成布局绑定,同时设定场景大小
Scene scene = new Scene(flowPane, 200, 300);
//主容器标题设置
primaryStage.setTitle("fx");
//给主容器绑定场景(让场景显示出来)
primaryStage.setScene(scene);
//不要忘了这一行,让主容器显示
primaryStage.show();
}

BorderPane 边框布局、

该布局有顶部,底部,左,右与中心区域的五个区域,每个区域只能有一个节点。

orderPane borderPane = new BorderPane();

一共有五个位置可以放控件

borderPane.setCenter(); //中央区域
borderPane.setBottom(); //下方
borderPane.setTop(); //上方
borderPane.setLeft(); //左方
borderPane.setRight(); //右边

完整代码如下

//新建控件
Button b1 = new Button("中间");
Button b2 = new Button("下面");
Button b3 = new Button("上面");
Button b4 = new Button("左边");
Button b5 = new Button("右边");
//将控件放入布局对应位置
borderPane.setCenter(b1);
borderPane.setBottom(b2);
borderPane.setTop(b3);
borderPane.setLeft(b4);
borderPane.setRight(b5);
//为布局生成场景
Scene scene = new Scene(borderPane, 300, 300);
//将场景绑定到主容器
stage.setScene(scene);
//让主容器显示
stage.show();

显示出来就是如下图

切记导包是FX的不然会报错

Label  文本标签(每个输入框前面的提示文字,只能提示输入什么)

Label label=new Label("我是标签文本");

TextField 输入框(可以输入文字)

TextField textField=new TextField("请输入你的用户名,");

PasswordField 密码框 (可以输入但是看不到比较适用于密码)

PasswordField passwordField = new PasswordField();

Button 按钮(按以后可以有反应也可以输入提示文字也可以设置点击事件)

通过按钮的 setOnAction 方法可以设置按钮的点击操作,该方法需要一个 EventHandler

Button button = new Button("我是一个按钮")

因为此处是属于函数式接口 @FunctionalInterface ,所以建议使用 lambda 表达式来编写

Button button = new Button("点我(●ˇ∀ˇ●)");
//lamdba表达式,同学们需要习惯一下
button.setOnAction(e->{
System.out.println("我被点击了");
});
//非lambda表达式,写法比较复杂
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
System.out.println("我被点击了");
}
});

unctionalInterface ,所以建议使用 lambda 表达式来编写

还可以优化:引入弹出框

切记一定要有显示方法


//定义弹出框对象
Alert alert = new Alert(Alert.AlertType.ERROR,"登陆失败");
//调用弹出框的显示方法
alert.showAndWait();

AlertType

NONE(界面文字)

ERROR(错误)

WARNING(警告)

CONFIRMATION(确认)

INFORMATION(信息)

判断是否成功安排上面

if(user!=null){
new Alert(Alert.AlertType.INFORMATION,"登录成功").showAndWait();
}else{
new Alert(Alert.AlertType.ERROR,"登录失败").showAndWait();
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值