導航:首頁 > 編程語言 > 獲取javafx的控制項

獲取javafx的控制項

發布時間:2023-06-01 15:16:07

① 如何在java中直接調用javaFX

當我們完成了MyScene類後,可以開始寫Java的主程序了,這是個標準的Swing程序中調用JavaFX代碼如下:
package swingtest; /** * JavaFXToSwingTest.java http://www.javafxblogs.com * @author Henry Zhang */ import java.awt.*; import javax.swing.*; import org.jfxtras.scene.SceneToJComponent; public class JavaFXToSwingTest extends JFrame { public static JTextField tf = new JTextField("JavaFX for SWING"); public JavaFXToSwingTest() { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("JavaFX in SWING Test"); Container container = getContentPane(); container.setLayout(new BorderLayout()); String sceneClass = "swingtest.MyScene"; JComponent myScene = SceneToJComponent.loadScene(sceneClass); JLabel label = new JLabel(" Below is a JavaFX Animation: "); container.add(label, BorderLayout.NORTH); container.add(myScene, BorderLayout.CENTER); JPanel p = new JPanel(); p.setLayout(new FlowLayout()); tf.setColumns(28); p.add(tf); p.add(new JButton("SWING Button")); container.add(p, BorderLayout.SOUTH); pack(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater( new Runnable() { public void run() { new JavaFXToSwingTest().setVisible(true); } } } }

對大多數Java/Swing程序員來說,上述代碼應該是很容易理解的。我們通過 BorderLayout和FlowLayout在Swing的窗口(JFrame)中布置了一些圖形控制項。有2行代碼是和載入JavaFX的Scene相關的:
String sceneClass = "swingtest.MyScene"; JComponent myScene = SceneToJComponent.loadScene(sceneClass);

其中SceneToJComponent類是從JFXtras項目中來的。它提供了loadScene()的方法,可以把JavaFX的Scene類載入到一個JComponent對象中, 從而可以被Swing程序使用。運行這個程序,你可以看到一行文本」JavaFX for SWING」在窗口中央旋轉。如果你在輸入框中輸入新的句子,你會發現旋轉的文字也發生了改變。
在Swing程序中調用JavaFX代碼是可行的,那麼應該怎樣編譯和運行這樣的程序呢。其實,JavaFX的功能也就是一些jar文件,因此和Java的結合方式還是比較簡單的。編譯的方法主要有兩種,一種就是用JavaFX 的編譯器Javafxc來編譯Java和JavaFX代碼。第二種就是用Javafxc編譯JavaFX代碼,用Javac編譯Java代碼,望採納,謝謝。

② JavaFX方法需要接受一個控制項但不確定這個控制項的類型怎麼辦

很簡單老春啊.你想你往AnchroPane或者HBox里添加控制項的時候, 它對你的傳激配入的控制項類型有沒有要求啊, 沒有吧, 只要是javafx.scene.Node就可以了

你也可以根據具體情況來控制傳入的類型,比如可以限製成Node 或者Control

③ 請問javafx該如何獲取一個組件的全局絕對坐標目前我想讓組件隨著滑鼠的拖動而改變位置,(接下面)

效果如圖

滑鼠拖動效果

參考代碼如下

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.layout.Pane;

import javafx.scene.layout.Region;

import javafx.stage.Stage;


public class TestDraggedApp extends Application {

//保存滑鼠點擊在組件上的位置

private double offsetX,offsetY;

@Override

public void start(Stage primaryStage) {

Pane root = new Pane();

Region region = new Region();

region.setStyle("-fx-background-color: #75c0ff;-fx-pref-width: 100;-fx-pref-height: 50");

root.getChildren().add(region);

primaryStage.setScene(new Scene(root, 500, 320));

primaryStage.setTitle("TestDraggedApp");

primaryStage.show();

//設置滑鼠按下事件

region.setOnMousePressed(event -> {

//記錄滑鼠點擊在組件上的位置

offsetX = event.getX();

offsetY = event.getY();

});

//設置滑鼠拖動事件

region.setOnMouseDragged(event -> {

//設置新的位置

double layoutX = event.getSceneX() - offsetX;

region.setLayoutX(layoutX);

double layoutY = event.getSceneY() - offsetY;

region.setLayoutY(layoutY);

});

}


public static void main(String[] args) {

launch(args);

}

}

④ JAVAFX怎麼獲取窗口句柄

1 內部匿名類和Lambda表達式
在之前的例子上對
button.setOnAction(this);

進行更改

button.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
System.out.println("I am an annonymous inner class");
}
});

此時點擊按鈕調用的時間就是我們後來修改的,不用去檢驗每個按鈕的名字,直接在生成對象之後對象的方法上調用內部類,使得事件發生。"Click me"。
但是後來會出現一個問題。按照上一次的想法我們有很多個按鈕的時候會寫出if條件結構,然後還要去對應代碼中的對象,但是都使用內部匿名類也不方便。
甲骨文公司在Java 8中開始加入了Lambda表達式,此時將這個語句改成如下:
button.setOnAction(e-> System.out.println("heyyyyy, I am Lambda"));

此時控制台對我們點擊了按鈕進行回應:heyyyyy, I am Lambda,Java自動幫我們處理這個事件。同時也可以改成
button.setOnAction(e->{
System.out.println("heyyyyy, I am Lambda1");

⑤ javafx怎麼獲得窗體上的控制項的句柄

實現日期選取器: 想在每次載入軟體的時間都能將選取器載入到當前的日期和時間,需要在viewDidLoad中創建一個新的NSDate對象,通過這種方式創建這個對象包含當前的時間和時間。然後將datePicker設讓羨置為該磨喚日期,這樣就可以確保每次坦游拍從nib中載入此視

⑥ JavaFx中Controller類如何獲取其他類的數據

fx:controller屬性對應的是類名稱
fx:controller ="類"

程序中是橡歲FXMLLoader來載入這個fxml文件

讀入悄如蠢後對所在的啟陪FXMLLoader對象上執行
MyController c=(MyController) fxmlloader.getController();
獲得控制器

⑦ javafx是什麼

什麼是 JavaFX ?

JavaFX 包含了一些列圖形和媒體包,允許程序員設計、創建、測試、調試、和部署富客戶端應用並且保持跨平台的操作一致性。

JavaFX 應用程序

JavaFX 應用程序由 Java API 編寫,可以調用任何 Java API 包。例如,可以調用 Java API 訪問本地操作系統,並且與伺服器進行連接。

JavaFX 的外觀可以自定義。層疊樣式表(CSS)將應用的外觀與功能分離,讓程序員可以更專注於編碼。美工可以簡單地通過 CSS 來自定義應用程序的外觀。

如果你有 Web 設計的背景,或者你想將 UI 和後台邏輯分離,那麼你還可以將 UI 放入到 FXML 標記語言中,用 Java
編寫業務邏輯。如果你只想編碼,那麼可以將編寫 UI 的工作交給 JavaFX Scene Builder。在支持 JavaFX
的集成開發環境(IDE)中,可以使用 JavaFX Scene Builder 來編寫 FXML 標記語言。

可用性

從 JavaFX 2.2 以後,JavaFX 已經集成在 JRE 7 和 JDK 7 以及以後的 Java 版本中了。因為 JDK
可以很好地運行在主流桌面系統上(Windows, Mac OS X, and Linux),因此 JavaFX
也可以運行在這些主流的桌面系統上。跨平台兼容性,可以讓 JavaFX 的開發者和用戶得到一致的體驗。

在 JDK 的下載頁面,可以獲取 JavaFX 例子的 Zip 包。這些例子應用程序提供了很多代碼來演示如何使用 JavaFX。

主要特性

JavaFX 2.2 和之後的版本都包含以下主要特性:

Java API

JavaFX 是一個 Java 包,由 Java 類和 Java 介面等原始的 Java 代碼編寫而成。這些 API 在設計上可以很友好的替代為 Java VM 語言,例如 JRuby 或 Scala。

FXML and Scene Builder

FXML 是基於 XML 的標記語言,用來創建 JavaFX UI。設計者可以直接編寫 FXML 或者使用 IDE 的 Scence Builder 來編寫 FXML。

WebView

Web 組件可以使用 WebKitHTML 技術將 Web 頁面嵌入到 JavaFX 應用程序中。在 WebView 中運行的
JavaScript 可以調用 Java API,並且 Java API 也可以調用 WebView 中運行的 JavaScript。

Swing 集成

舊有的 Swing 應用程序可以更行 JavaFX 的新特性,比如豐富的圖形媒體播放功能和嵌入 Web 頁面的功能。

豐富的自有控制項和CSS

JavaFX 提供了桌面應用程序需要用到的主要控制項。並且控制項的外觀可以使用標準的 Web CSS 來進行控制。

畫布(Canvas)API

Canvas API 允許在可以包含一個作圖元素的 JavaFX scene 直接繪制圖形。

支持多點觸控

基於平台的底層能力,JavaFX 支持多點觸控功能。

硬體加速的圖形通道

JavaFX 圖形渲染基於 Prism。如果使用了支持 Prism 的顯卡或 GPU,JavaFX 可以很快的進行平滑渲染。如果系統不支持 Prism,那麼默認值將會變為 Java 2D。

高性能的媒體引擎

媒體通道支持 Web 多媒體內容的播放,基於 GStreamer 媒體框架,提供了穩定的、低延遲的媒體播放框架。

自包含的應用程序部署模式

自包含的應用程序,可以包含所有的應用程序資源、Java 運行時以及 JavaFX 運行時。應用程序發布後,可以在操作系統本地安裝,獲得操作系統一致的安裝和載入體驗。

⑧ 進行javafx編程時,如何將sample.fxml文件中控制項和事件程序自動添加到Controller.java中

一,瘦客戶端,富客戶端簡介
富客戶端【RIA】開發可以有多種,主要的有 MS C# Silverlight, Adobe Flash/Flex,Oracle Java JavaFX,有些運行在瀏覽器中,有些運行在瀏覽器外;

瘦客戶端主要是指 HMTL+JS+CSS 在瀏覽器中運行的系統。

二,JavaFX 環境搭建

目前很多游戲或系統還很多使用富客戶端開發,這里介紹Java 的 JavaFX ,使用JavaFX開發,首先就是開發環境的搭建,JavaFX的搭建環境需要如下:

1,java JDK ,是運行java必備的環境,安裝後還設置系統環境變數等,使用 J2SE 7+版,
2,Eclipse ,優秀的 Java 的集成開發環境,使用 V3.7.2 版本,
3,javaFX 插件 JavaFX Scene Builder 1.0,用來開發界面UI,即 .fxml 文件的生成,支持隨見即所得的效果,
4,javaFX 插件下載後安裝到Eclipse開發環境中,如何安裝具體忘了,可以參考 JavaFX 工具安裝和用法介紹 http://efxclipse.org/

三,開發步驟

安裝了上面的軟體之後,即可開發JavaFX項目了,步驟一般是:

1,在Eclipse中新建一個項目或 Maven項目;

2,使用插件工具開發建立 .fxml 文件,即程序UI界面;

3,編寫界面對應的控制器Java類文件,類繼承哪個控制項類[可視具體情況定],實現哪個介面[可視具體情況定];

4,編寫一個主類,用於啟動程序,載入各種資源;

不過CSDN前端時間[2012.09]有報道將來瘦客戶端才是王道,發展主流的主要趨勢。

⑨ javaFX Tree View控制項綁定CheckBoxTreeCell獲取值

JavaFX 2.0 有監聽功能的。比如:

treeVew.getSelectionModel().selectedItemProperty().addListener(newChangeListener(){
@Override
publicvoidchanged(ObservableValueobservable,ObjectoldValue,ObjectnewValue){
system.out.println("selectionchange");
}
});

還有監聽FocusModel(焦點模型)
treegetFocusModel().focusedItemProperty().addListener(newChangeListener<TreeItem>(){
@Override
publicvoidchanged(
ObservableValue<?extendsTreeItem>observable,
TreeItemoldValue,TreeItemnewValue){
system.out.println("treeselectionchanged");
}
});

⑩ javaFX2 中打開或者選擇文件的控制項是什麼我怎麼沒找到

javafx.stage.FileChooser

閱讀全文

與獲取javafx的控制項相關的資料

熱點內容
造夢西遊3粉色氣球代碼 瀏覽:765
成人兒子吃媽媽的奶電影 瀏覽:97
魅藍隱藏文件夾在哪裡設置密碼 瀏覽:752
給我一個看片網站 瀏覽:292
word分節符頁碼 瀏覽:262
二戰潛艇電影大全集 瀏覽:170
二龍湖浩哥全部電影作品 瀏覽:313
免費二戰電影大全500部 瀏覽:628
江蘇醫保下載什麼app 瀏覽:715
哪裡可以看尺度大的網站 瀏覽:446
方舟手游壓縮文件有什麼效果 瀏覽:580
午夜激情性電影 瀏覽:413
母乳是結果的視頻電影 瀏覽:722
vc讀取dxf文件代碼 瀏覽:50
三菱plc編程怎麼上傳 瀏覽:423
釘釘怎麼把文件發到桌面 瀏覽:347
電腦右鍵文件夾桌面卡死 瀏覽:938
大數據保存不了 瀏覽:73
求合體2破解版蘋果 瀏覽:284
影院網頁 瀏覽:590

友情鏈接