java普通類如何轉(zhuǎn)javafx程序
java普通類轉(zhuǎn)javafx程序
只需要集成Application 就可以了
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class test extends Application { public static void main(String[] args) { launch(); } @Override public void start(Stage primaryStage) throws Exception { // 設(shè)置舞臺(tái)標(biāo)題 primaryStage.setTitle("Hello World App"); // 創(chuàng)建按鈕 Button button = new Button("Click Me"); // 設(shè)置按鈕點(diǎn)擊事件處理邏輯 button.setOnAction(event -> { // 創(chuàng)建對(duì)話框 Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Hello"); alert.setHeaderText(null); alert.setContentText("Hello, World!"); // 顯示對(duì)話框 alert.showAndWait(); }); // 創(chuàng)建布局并將按鈕添加到布局中 StackPane layout = new StackPane(); layout.getChildren().add(button); // 創(chuàng)建場(chǎng)景并將布局設(shè)置為場(chǎng)景的根節(jié)點(diǎn) Scene scene = new Scene(layout, 300, 200); // 將場(chǎng)景設(shè)置到舞臺(tái) primaryStage.setScene(scene); // 顯示舞臺(tái) primaryStage.show(); } }
java、javafx判斷程序是否已運(yùn)行
package com.test.util.sys; import java.io.File; import java.io.RandomAccessFile; import java.nio.channels.FileLock; /** * 單個(gè)實(shí)例程序檢測(cè) * @author luohui * @create 2020/8/27 * @since 1.0.0 */ public class SingleAppCheckUtil { /** * 檢測(cè)是否有其他實(shí)例在運(yùn)行 */ public static void check() { try { File file = new File(System.getProperty("java.io.tmpdir") + "singleTest.single"); if(!file.exists()) { file.createNewFile(); } RandomAccessFile accessFile = new RandomAccessFile(file, "rw"); FileLock lock = accessFile.getChannel().tryLock(); if(lock == null) { System.out.println("程序已運(yùn)行,退出"); System.exit(0); } } catch (Exception e) { Tools.saveLog(e); System.exit(0); } } } package com.test.main; import com.test.util.sys.SingleAppCheckUtil; import javafx.application.Application; import javafx.stage.Stage; import java.net.URL; import java.util.Timer; /** * JavaFx首頁啟動(dòng) * @author luohui * @create 2020/4/13 * @since 1.0.0 */ public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void init() { //檢測(cè)是否有已運(yùn)行程序 SingleAppCheckUtil.check(); } @Override public void start(Stage primaryStage) throws Exception { //業(yè)務(wù)邏輯代碼 //... } } package com.test.main; /** * Java程序首頁啟動(dòng) * @author luohui * @create 2020/4/13 * @since 1.0.0 */ public class Main1 { public static void main(String[] args) { //檢測(cè)是否有已運(yùn)行程序 SingleAppCheckUtil.check(); //業(yè)務(wù)邏輯代碼 //... } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java多線程鎖機(jī)制相關(guān)原理實(shí)例解析
這篇文章主要介紹了Java多線程鎖機(jī)制相關(guān)原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Java如何實(shí)現(xiàn)http接口參數(shù)和返回值加密
這篇文章主要介紹了Java如何實(shí)現(xiàn)http接口參數(shù)和返回值加密問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11基于Java實(shí)現(xiàn)互聯(lián)網(wǎng)實(shí)時(shí)聊天系統(tǒng)(附源碼)
Netty?是一個(gè)利用?Java?的高級(jí)網(wǎng)絡(luò)的能力,隱藏其背后的復(fù)雜性而提供一個(gè)易于使用的?API?的客戶端/服務(wù)器框架。本文將利用它實(shí)現(xiàn)互聯(lián)網(wǎng)實(shí)時(shí)聊天系統(tǒng),感興趣的可以了解一下2022-09-09mybatis中resultMap 標(biāo)簽的使用教程
resultMap 標(biāo)簽用來描述如何從數(shù)據(jù)庫結(jié)果集中來加載對(duì)象,這篇文章重點(diǎn)給大家介紹mybatis中resultMap 標(biāo)簽的使用,感興趣的朋友一起看看吧2018-07-07Spring @ComponentScan注解使用案例詳細(xì)講解
@ComponentScan注解的作用可以簡述為:將項(xiàng)目中所有被@Component注解直接或者間接標(biāo)記的類---->組裝成BeanDefinition---->然后以key=beanName, value=BeanDefinition的形式存儲(chǔ),為后續(xù)生成bean對(duì)象做準(zhǔn)備2023-03-03Springboot如何切換默認(rèn)的Tomcat容器
這篇文章主要介紹了Springboot如何切換默認(rèn)的Tomcat容器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Mybatis 自動(dòng)映射(使用需謹(jǐn)慎)
這篇文章主要介紹了Mybatis 自動(dòng)映射(使用需謹(jǐn)慎),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Java得到一個(gè)整數(shù)的絕對(duì)值,不使用任何判斷和比較語句,包括API
Java得到一個(gè)整數(shù)的絕對(duì)值,不使用任何判斷和比較語句,包括API2009-09-09