导航:首页 > 编程语言 > 获取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的控件相关的资料

热点内容
彩视制作教程 浏览:766
圣墟在哪个App看免费 浏览:395
网络哪些不能玩 浏览:868
probe315使用教程 浏览:646
数字电位器程序 浏览:198
c代码整理 浏览:104
网络营销具有什么优势 浏览:378
右下角网络连接不显示宽带连接 浏览:940
ps修改tif文件 浏览:580
预防医学如何转行做大数据 浏览:234
pdf文件变蓝 浏览:309
怎么在pdf文件上面用k宝签名 浏览:213
如何知道表格里数据后面有空格 浏览:720
gee引擎更新系统找不到指定文件 浏览:802
贝壳网的数据删除了如何找回 浏览:509
华为荣耀6x怎么切换网络 浏览:418
手机里的pdf文件在哪放 浏览:889
java版贪吃蛇毕业论文 浏览:989
微信公共号邮箱 浏览:415
图片宽度代码 浏览:460

友情链接