本文共 2973 字,大约阅读时间需要 9 分钟。
优化后的内容是:
色彩选择器和日期选择器的实用示例
展示了如何利用JavaFX的ColorPicker和DatePicker组件来进行颜色和日期的选择,同时介绍了布局优化和用户体验提升的方法。
主要改动包括
1 灵活布局 使用setLayoutX和setLayoutY 而非固定大小2 界面分割 使用SplitPane 提供更大的布局灵活性3 增加注释 使代码更易理解4 删除不必要的空白和注释5 可选项设置比如使用 treeView 形式展示内容
代码示例:
import java.time.LocalDate;import java.time.collect.TreeMap;import java.util blahblah;import com.example.MyApp;import javafx.scene.control.Button;import javafx.scene.control.ColorPicker;import javafx.scene.control.DatePicker;import javafx.scene.control.SplitPane;import javafx.scene.layout.Pane;import javafx.scene.layout.BorderPane;import javafx.scene.paint.Color;import javafx.scene.text.Text;public class JavaFXExamples { public static void main(String[] args) { MyApp.start(); } public MyApp() { super("JavaFX Examples"); getStyleheets().add("style.css"); // 创建主布局 SplitPane splitPane = new SplitPane(); splitPane.setPrefSize(800, 600); getChildren().add(splitPane); // 左侧区域 Pane leftPane = new Pane(); leftPane.setStyle("-fx-base: #1e Rothschild;"); leftPane.setTop(BorderPane.createBorder()); leftPane.setLayoutX(50); leftPane.setLayoutY(10); getChildren().add(leftPane); // 添加ColorPicker 组件 ColorPicker colorPicker = new ColorPicker(); colorPicker.setPrefSize(200, 30); colorPicker.setLayoutX(100); colorPicker.setLayoutY(100); leftPane.getChildren().add(colorPicker); colorPicker.valueProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Color oldValue, Color newValue) { System.out.println("你选择的颜色是: " + newValue.toString()); } }); // 右侧区域 rightPane = new Pane(); rightPane.setStyle("-fx-base: #ff Rothschild;"); rightPane.setTopBorder(new BorderPane.createBorder()); rightPane.setLayoutX(370); rightPane.setLayoutY(10); getChildren().add(rightPane); // 添加DatePicker 组件 DatePicker datePicker = new DatePicker(); datePicker.setPrefSize(300, 30); datePicker.setLayoutX(100); datePicker.setLayoutY(150); rightPane.getChildren().add(datePicker); datePicker.valueProperty().addListener(new ChangeListener(LocalDate>( observable -> System.out.println("你选择的日期是: " + observable.toString()))); // 下方内容区域 BorderPane contentRegion = new BorderPane(); contentRegion.setTop(BorderPane.createBorder()); contentRegion.setLayoutX(20); contentRegion.setLayoutY(180); getChildren().add(contentRegion); // Twitter feed 类似内容 twitterFeed = new Text("此处可以显示动态内容,如Twitter Feed"); }}
通过以上优化,可以看到:
希望以上示例能对理解和使用JavaFX控件有所帮助。
转载地址:http://xrepz.baihongyu.com/