JavaFX --- 标签、文本框、密码框、下拉框、按钮、单选按钮、复选框

柔情只为你懂 2023-09-29 15:00 114阅读 0赞

目录

JavaFX的基本结构和概念

Application —- 代表了JavaFX的应用程序

Stage —- 舞台 —- 代表了一个窗体。

在Application的start方法中,提供了一个默认的窗体对象。我们也可以根据自己的需要,new出新的窗体。

Scene —- 场景 —- 代表了窗体当中的内容板。 Scene对象在创建的时候要求传参,参数是一个布局。

JavaFX控件

标签 Label

文本框 TextField

密码框 PasswordField

下拉框 ComboBox

按钮 Button

单选按钮 RadioButton

复选框 CheckBox


JavaFX的基本结构和概念

Application —- 代表了JavaFX的应用程序

Stage —- 舞台 —- 代表了一个窗体。

在Application的start方法中,提供了一个默认的窗体对象。我们也可以根据自己的需要,new出新的窗体。

示例:

  1. public class MyApplication extends Application {
  2. public static void main(String[] args) {
  3. launch();
  4. }
  5. @Override
  6. public void start(Stage stage) throws Exception {
  7. stage.setScene(new LoginScene);//设置运行时场景
  8. stage.setTitle("第一个窗体");//设置窗体标题
  9. stage.getIcons().add(new Image("file:img/logo.gif"));//设置窗体的logo
  10. //如果不写的话,以Stage中的Scene的大小决定
  11. // stage.setWidth(600);//设置窗体的宽度
  12. // stage.setHeight(400);//设置窗体的高度
  13. //不写的话默认居中
  14. // stage.setX(100);//定制距离父容器左上角的x坐标
  15. // stage.setY(100);//定制距离父容器左上角的y坐标
  16. stage.setResizable(false);//设置窗体大小不可变
  17. stage.show();//最好放在最后一条语句,保证内容构造好以后再一次性显示
  18. }
  19. }

Scene —- 场景 —- 代表了窗体当中的内容板。 Scene对象在创建的时候要求传参,参数是一个布局。

锚点布局面板 示例:

  1. public class LoginScene extends Scene {
  2. private AnchorPane anchorPane;
  3. public LoginScene(){
  4. //锚点布局面板 --- 采用绝对定位的方式布局它内部的空间或子面板的位置
  5. super(new AnchorPane());
  6. this.anchorPane = (AnchorPane) this.getRoot();
  7. }
  8. }

JavaFX控件

标签 Label

示例:

  1. Label nameLab = new Label("用户名:");//设置标签文本
  2. this.nameLab.setLayoutX(30);//设置x轴绝对定位
  3. this.nameLab.setLayoutY(30);//设置y轴绝对定位
  4. this.nameLab.setFont(new Font("宋体",18));//设置字体和文字大小 or .setStyle方法
  5. this.anchorPane.getChildren().add(this.nameLab);//添加该控件

文本框 TextField

示例:

  1. TextField nameTxt = new TextField();
  2. this.nameTxt.setLayoutX(100);
  3. this.nameTxt.setLayoutY(24);
  4. this.nameTxt.setWidth(100);//设置文本框宽
  5. this.nameTxt.setHeight(30);//设置文本框高
  6. this.nameTxt.setPromptText("请输入姓名");//设置提示语句,文本框获取焦点以后自动消失
  7. this.nameTxt.setFont(new Font("宋体",15));
  8. this.anchorPane.getChildren().add(this.nameTxt);

密码框 PasswordField

示例:

  1. PasswordField pwdTxt = new PasswordField();
  2. this.pwdTxt.setLayoutX(100);
  3. this.pwdTxt.setLayoutY(75);
  4. this.pwdTxt.setFont(new Font("宋体",15));
  5. this.anchorPane.getChildren().add(this.pwdTxt);

下拉框 ComboBox

示例:

  1. ComboBox<String> idComb = new ComboBox<>();
  2. this.idComb.getItems().add("管理员");//添加可选项
  3. this.idComb.getItems().add("会员");
  4. this.idComb.getItems().add("非会员");
  5. this.idComb.setStyle("-fx-font-size:15px");//修改字体大小
  6. this.idComb.setLayoutX(100);
  7. this.idComb.setLayoutY(124);
  8. this.idComb.getSelectionModel().select(1);//修改默认显示选项
  9. this.anchorPane.getChildren().add(this.idComb);

按钮 Button

示例:

  1. Button loginBtn = new Button("登陆");
  2. this.loginBtn.setFont(new Font("宋体",18));
  3. this.loginBtn.setLayoutX(300);
  4. this.loginBtn.setLayoutY(180);
  5. this.anchorPane.getChildren().add(this.loginBtn);

单选按钮 RadioButton

示例:

  1. //单选按钮
  2. RadioButton maleButton = new RadioButton("男");
  3. RadioButton femalButton = new RadioButton("女");
  4. RadioButton unknownButton = new RadioButton("未知");
  5. this.maleButton.setLayoutX(20);
  6. this.maleButton.setLayoutY(200);
  7. this.femalButton.setLayoutX(120);
  8. this.femalButton.setLayoutY(200);
  9. this.unknownButton.setLayoutX(220);
  10. this.unknownButton.setLayoutY(200);
  11. this.unknownButton.setSelected(true);//设置默认选中
  12. //要有互斥效果,必须先分组
  13. ToggleGroup genderGroup = new ToggleGroup();
  14. this.maleButton.setToggleGroup(genderGroup);
  15. this.femalButton.setToggleGroup(genderGroup);
  16. this.unknownButton.setToggleGroup(genderGroup);

复选框 CheckBox

示例:

  1. //复选框
  2. CheckBox readBox = new CheckBox("阅读");
  3. CheckBox musicBox = new CheckBox("运动");
  4. CheckBox sportBox = new CheckBox("音乐");
  5. CheckBox travelBox = new CheckBox("旅游");
  6. this.readBox.setLayoutX(20);
  7. this.readBox.setLayoutY(240);
  8. this.sportBox.setLayoutX(100);
  9. this.sportBox.setLayoutY(240);
  10. this.musicBox.setLayoutX(180);
  11. this.musicBox.setLayoutY(240);
  12. this.travelBox.setLayoutX(260);
  13. this.travelBox.setLayoutY(240);
  14. this.anchorPane.getChildren().addAll(this.readBox,this.sportBox,this.musicBox,this.travelBox);

#

发表评论

表情:
评论列表 (有 0 条评论,114人围观)

还没有评论,来说两句吧...

相关阅读