当前位置: 首页 > news >正文

图书馆网站建设的规章制度用织梦做的网站好还是cms

图书馆网站建设的规章制度,用织梦做的网站好还是cms,潍坊网站制作案例,浙江百度查关键词排名JavaFX案例#xff1a;集成进度条与后台任务 在这个示例中#xff0c;我们将向JavaFX应用中集成一个进度条#xff0c;用来展示一个模拟的后台任务的完成进度。这将涉及JavaFX的并发特性#xff0c;特别是Task类和如何在UI线程安全地更新UI组件。 假设我们想要实现一个简…JavaFX案例集成进度条与后台任务 在这个示例中我们将向JavaFX应用中集成一个进度条用来展示一个模拟的后台任务的完成进度。这将涉及JavaFX的并发特性特别是Task类和如何在UI线程安全地更新UI组件。 假设我们想要实现一个简单的场景用户点击一个按钮开始一个耗时的任务期间进度条会根据任务完成情况实时更新任务完成后显示完成信息。 修改后的主类代码 import javafx.application.Application; import javafx.concurrent.Task; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.VBox; import javafx.stage.Stage;public class JavaFXProgressBarDemo extends Application {public static void main(String[] args) {launch(args);}Overridepublic void start(Stage primaryStage) {// UI元素Button startButton new Button(开始任务);ProgressBar progressBar new ProgressBar(0);Label statusLabel new Label(等待任务开始...);// 设置任务TaskVoid task createSimulationTask();// 绑定进度条到任务progressBar.progressProperty().bind(task.progressProperty());// 任务状态监听task.setOnSucceeded(event - {statusLabel.setText(任务完成);});task.setOnFailed(event - {statusLabel.setText(任务失败);});// 按钮点击事件处理startButton.setOnAction(event - {progressBar.setProgress(ProgressIndicator.INDETERMINATE_PROGRESS);Thread thread new Thread(task);thread.setDaemon(true);thread.start();});// 布局VBox vbox new VBox(10);vbox.setAlignment(Pos.CENTER);vbox.getChildren().addAll(startButton, progressBar, statusLabel);// 场景Scene scene new Scene(vbox, 480, 200);// 舞台primaryStage.setTitle(JavaFX 进度条示例);primaryStage.setScene(scene);primaryStage.show();}private TaskVoid createSimulationTask() {return new TaskVoid() {Overrideprotected Void call() throws Exception {for (int i 0; i 100; i) {updateProgress(i, 100);Thread.sleep(50); // 模拟耗时操作实际应用中应避免使用sleep}return null;}};} }代码解析 引入了一个ProgressBar和一个Button以及一个用于显示任务状态的Label。定义了一个createSimulationTask方法返回一个TaskVoid实例。这个任务在后台线程中执行模拟一个逐步完成的过程通过调用updateProgress方法更新任务进度。将进度条的进度属性与任务的进度属性绑定确保UI可以反映任务的实际完成情况。在按钮的点击事件处理器中启动一个新线程来执行任务并将进度条设置为不确定模式INDETERMINATE_PROGRESS直到任务开始报告具体进度。添加了对任务成功或失败的监听以便在任务结束后更新状态信息。 通过这个示例你学习了如何在JavaFX应用中使用进度条展示后台任务的进度以及如何通过Task类安全地处理并发问题保持UI的响应性和用户友好性。 JavaFX案例实现图表展示使用JavaFX Charts 在前面的示例中我们已经探索了JavaFX的基本UI组件、数据绑定、列表选择以及后台任务处理。现在我们将进一步拓展通过集成JavaFX Charts来创建一个动态的数据可视化界面。假设我们要展示一个简单的柱状图Bar Chart根据用户输入的数据动态更新图表。 准备工作 请注意JavaFX Charts并非JavaFX核心库的一部分需要单独引入相关依赖。如果你使用Maven或Gradle构建项目需添加对应的依赖。 修改后的主类代码 import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.chart.BarChart; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.layout.BorderPane; import javafx.stage.Stage;public class JavaFXChartsDemo extends Application {public static void main(String[] args) {launch(args);}Overridepublic void start(Stage primaryStage) {// 创建X轴分类轴CategoryAxis xAxis new CategoryAxis();xAxis.setLabel(类别);// 创建Y轴数值轴NumberAxis yAxis new NumberAxis();yAxis.setLabel(数量);// 创建柱状图BarChartString, Number barChart new BarChart(xAxis, yAxis);// 设置图表标题barChart.setTitle(数据分布);// 数据准备ObservableListXYChart.SeriesString, Number data FXCollections.observableArrayList(new XYChart.Series(类别A, FXCollections.observableArrayList(new XYChart.Data(项目1, 20),new XYChart.Data(项目2, 30),new XYChart.Data(项目3, 15))),new XYChart.Series(类别B, FXCollections.observableArrayList(new XYChart.Data(项目1, 25),new XYChart.Data(项目2, 35),new XYChart.Data(项目3, 9))));// 将数据添加到图表barChart.getData().addAll(data);// 使用BorderPane作为根容器并将图表置于其中BorderPane root new BorderPane();root.setCenter(barChart);// 创建场景Scene scene new Scene(root, 800, 600);// 设置舞台primaryStage.setTitle(JavaFX 图表示例);primaryStage.setScene(scene);primaryStage.show();} }代码解析 引入了BarChart、CategoryAxis和NumberAxis这些是JavaFX Charts库中用于创建柱状图的类。创建了X轴用于分类和Y轴用于数值并设置了它们的标签。通过XYChart.Series和XYChart.Data构建了两组数据分别代表不同类别的数据分布。将数据集添加到BarChart中并设置了图表的标题。使用BorderPane作为根布局容器将柱状图放置于中心位置。最后像之前一样创建场景并显示舞台。 通过这个示例你学习了如何在JavaFX应用中集成图表为用户提供直观的数据可视化功能。尽管这里展示了静态数据的图表展示但同样的原理可以应用于动态数据更新以响应用户输入或其他实时数据源。 JavaFX案例实现拖放功能Drag and Drop 在本示例中我们将为JavaFX应用添加拖放Drag and Drop功能让用户能够直接通过鼠标操作来移动或重新排序UI元素。我们将创建一个简单的界面其中包含几个可拖动的标签用户可以将这些标签拖放到一个目标区域。 修改后的主类代码 import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.input.ClipboardContent; import javafx.scene.input.DragEvent; import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; import javafx.scene.input.TransferMode; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage;public class JavaFXDragAndDropDemo extends Application {public static void main(String[] args) {launch(args);}Overridepublic void start(Stage primaryStage) {// 创建可拖动的标签集合Label label1 createDraggableLabel(标签1);Label label2 createDraggableLabel(标签2);Label label3 createDraggableLabel(标签3);// 创建目标区域Pane targetArea new Pane();targetArea.setStyle(-fx-background-color: #DDDDDD; -fx-border-color: black;);targetArea.setPrefSize(200, 200);// 设置目标区域为可接受拖放targetArea.setOnDragOver(event - {Dragboard db event.getDragboard();if (db.hasString()) {event.acceptTransferModes(TransferMode.COPY_OR_MOVE);}event.consume();});targetArea.setOnDragDropped(event - {Dragboard db event.getDragboard();boolean success false;if (db.hasString()) {Label label (Label) event.getGestureSource();label.relocate(event.getX() - (label.getWidth() / 2), event.getY() - (label.getHeight() / 2));targetArea.getChildren().add(label);success true;}event.setDropCompleted(success);event.consume();});// 布局VBox vbox new VBox(10, label1, label2, label3);HBox hbox new HBox(10, vbox, targetArea);// 场景Scene scene new Scene(hbox, 600, 400);// 舞台primaryStage.setTitle(JavaFX 拖放示例);primaryStage.setScene(scene);primaryStage.show();}private Label createDraggableLabel(String text) {Label label new Label(text);label.setOnDragDetected(new EventHandlerMouseEvent() {Overridepublic void handle(MouseEvent event) {Dragboard db label.startDragAndDrop(TransferMode.ANY);ClipboardContent content new ClipboardContent();content.putString(label.getText());db.setContent(content);event.consume();}});return label;} }代码解析 通过createDraggableLabel方法创建可拖动的Label为其添加onDragDetected事件处理器用于启动拖放操作。当拖动开始时我们使用Dragboard存储要传输的数据这里是标签的文本并设置允许的传输模式。目标区域Pane设置了onDragOver和onDragDropped事件处理器允许拖放并处理放下事件将拖动的标签添加到目标区域并调整位置。布局使用HBox和VBox来组织可拖动的标签和目标区域。 通过这个示例你学习了如何在JavaFX应用中实现拖放功能这增强了用户界面的交互性让用户能直接参与和控制UI元素的布局或排序。
http://www.dnsts.com.cn/news/138818.html

相关文章:

  • 襄阳宜城网站建设网站建设怎么入会计账
  • 做网站简单需要什么哈尔滨网络公司代理商
  • 有没学做早餐的网站模板建网站哪个品牌好
  • 开通企业网站需要多少钱网站建设与管理专业实训室
  • 建设一个收入支出持平的网站wordpress查看访问者ip
  • 515ppt网站建设赤峰公司做网站
  • 张家界网站建设企业深夜十大直播app软件
  • 哪个网站可以做创意短视频网站python做的网站有什么漏洞
  • 广州云购网站建设网站建设面临的困难
  • 凡科做网站行吗室内设计公司职位
  • 你认为优酷该网站哪些地方可以做的更好_为什么?wordpress禁止谷歌字体
  • 深圳房产 网站建设个人简历电子版填写免费模板
  • 招远做网站价格电子商务网站建设系统特点
  • ps制作网站产品图片太原网站建设 thinkphp3.2
  • 南宁南宁做网站管理案例网站
  • 求个网站你们知道的wordpress分享和点赞
  • 包装设计的目的和意义长沙网站优化推广
  • 网站制作-杭州重庆人才网
  • 徐州网站排名优化网络推广外包业务销售
  • 网站上传办法wordpress 七牛云图床
  • 免费拿项目做的网站灵犀科技 高端网站建设背景图
  • 高端建站准备材料请人做网站收费多少钱
  • 优秀电子商务网站企业网站如何做推广
  • 简洁大气企业网站源码万网网站模板购买
  • 做网站的费用计入销售费用吗深圳网站建设服务哪一个便宜
  • 网站关键词热度深圳好的网站制作哪家快
  • 网站栏目建设征求意见电商网站的二级怎么做
  • 网站建设基础包括成都广告公司招聘
  • 网站免费关键词如何做交换友情链接的要求有
  • 专业微信网站建设多少钱云服务器网站搭建