zoukankan      html  css  js  c++  java
  • JavaFX ComboBox的选中事项

    参考1:https://blog.csdn.net/mexel310/article/details/37909205

    参考2:https://blog.csdn.net/maosijunzi/article/details/43486441

    目的:通过选择下拉框中的字体,更新字符串“JavaFX”的显示字体。

     1 import javafx.application.Application;
     2 import javafx.beans.value.ChangeListener;
     3 import javafx.beans.value.ObservableValue;
     4 import javafx.collections.FXCollections;
     5 import javafx.geometry.Insets;
     6 import javafx.scene.Node;
     7 import javafx.scene.Scene;
     8 import javafx.scene.control.ComboBox;
     9 import javafx.scene.control.Label;
    10 import javafx.scene.control.Tooltip;
    11 import javafx.scene.layout.BorderPane;
    12 import javafx.scene.layout.StackPane;
    13 import javafx.scene.text.Font;
    14 import javafx.stage.Stage;
    15 
    16 public class MyJavaFX extends Application {
    17 
    18     @Override
    19     public void start(Stage primaryStage) throws Exception {
    20         // Create a pane to hold the label and the combo box
    21         BorderPane pane = new BorderPane();
    22         
    23         // label
    24         Label label = new Label();
    25         label.setText("JavaFX");
    26         
    27         // combo box
    28         ComboBox<Object> comboBox = new ComboBox<>();
    29         comboBox.setTooltip(new Tooltip("Select the language"));
    30         comboBox.setItems(FXCollections.observableArrayList(Font.getFamilies()));
    31         comboBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
    32             @Override
    33             public void changed(ObservableValue observable, Object oldValue, Object newValue) {
    34                 System.out.println(newValue.toString());
    35                 label.setFont(Font.font(newValue.toString()));
    36                 
    37             }
    38         });
    39         
    40         // Place combo box in the top of the pane, and label in the bottom of the pane 
    41         pane.setTop(new CustomPane(comboBox));
    42         pane.setBottom(new CustomPane(label));
    43         
    44         Scene scene = new Scene(pane);
    45         primaryStage.setTitle("Font Demo");
    46         primaryStage.setScene(scene);
    47         primaryStage.show();
    48     }
    49 
    50     public static void main(String[] args) {
    51         launch(args);
    52     }
    53 }
    54 
    55 class CustomPane extends StackPane {
    56     public CustomPane(Node node) {
    57         getChildren().add(node);
    58         setStyle("-fx-border-color: green;");
    59         setPadding(new Insets(20, 20, 20, 20));
    60     }
    61 }

    运行效果:

     

  • 相关阅读:
    零知识证明,中间人攻击,盲签名:原理和应用——三篇密码学科普文章
    json
    优化自己的编写出来的C#程序
    C++中不同的继承方式
    C语言程序编写涉及内存的问题
    面向Android的Tesseract工具
    常见Linux使用的十大问题
    Java语言链接数据库连接池配置的两种技巧
    配置数据库连接池的技巧
    PHP和Java在Web开发下相比较
  • 原文地址:https://www.cnblogs.com/Satu/p/10802106.html
Copyright © 2011-2022 走看看