有没有人知道任何基于JavaFX的真实Web应用程序?我是一名经验丰富的Java程序员,考虑在我不在日常工作的时候创建一个网站.我在UI方面没有很多专业知识,因此我正在寻找利用现有技能创建可以提供令人敬畏的RIA体验的最佳方式.唯一的麻烦是,我不知道任何使用JavaFX实现的网站,因为它是如此新颖.我想看看它有什么能力.
我将.fxml-Files用于我的应用程序的视图层.每个fxml都附有一个控制器
<AnchorPane fx:controller="movielistjavafx.view.MainWindowController">
Run Code Online (Sandbox Code Playgroud)
我们假设我有一个mainFrame和它的控制器.mainFrame.fxml加载在start(Stage)-method中.
现在你要显示一个附加到Stage/Window/Whatever的fileChooser.
为此,让fxml-controller知道例如 primaryStage.
有没有办法将它注入控制器,或者FXML在运行时是否知道它属于哪个场景和阶段?
我只有想法是将primaryStage存储在某些静态上下文中,但这似乎不是一种对我这样做的方法.
JavaFX 2颜色选择器有一个按钮,弹出一个颜色选择器窗格,如下所示:

我想做类似的事情,因为我想在单击按钮时弹出自定义窗格,在单击其他内容时消失(在我的例子中,是一些图像缩略图).实现这一目标的最佳方式是什么?我应该使用ContextMenu并以某种方式向MenuItem添加一个窗格,还是我还应该看一下其他内容?
我正在尝试进行一些碰撞检测.对于这个测试,我使用简单的矩形Shape,并检查它们Bound,以确定它们是否发生碰撞.虽然检测不能按预期工作.我尝试过使用不同的方法移动对象(relocate,setLayoutX,Y)以及不同的绑定检查(boundsInLocal,boundsInParrent等),但我仍然无法使其工作.如您所见,检测仅适用于一个对象,即使您有三个对象,也只有一个检测到碰撞.这是一些演示问题的工作代码:
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Cursor;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import java.util.ArrayList;
public class CollisionTester extends Application {
private ArrayList<Rectangle> rectangleArrayList;
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) {
primaryStage.setTitle("The test");
Group root = new Group();
Scene scene = new Scene(root, 400, 400);
rectangleArrayList = new ArrayList<Rectangle>();
rectangleArrayList.add(new Rectangle(30.0, 30.0, Color.GREEN));
rectangleArrayList.add(new Rectangle(30.0, 30.0, Color.RED));
rectangleArrayList.add(new Rectangle(30.0, 30.0, Color.CYAN));
for(Rectangle block : …Run Code Online (Sandbox Code Playgroud) 开发JavaFX需要显示pdf 的桌面应用程序.我读到在JavaFX(当前版本)中不支持pdf查看/显示,我也读过JPedal.
现在,问题:
JPedal)如何将其嵌入我的应用程序中.我开始学习javaFX,我需要使用数据库中的数据填充表.我在线阅读了很多代码,但我还没找到我想要的东西.我读过这篇文章,但我不知道如何实现最后一个函数.我读了一些其他代码来做到这一点,到目前为止这是我的一些代码:
@FXML private TableView<User> table;
@FXML private TableColumn<User, String> nameCol;
@FXML private TableColumn<User, String> emailCol;
private ObservableList<User> data;
public void initialize(URL location, ResourceBundle resources) {
nameCol.setCellValueFactory(new PropertyValueFactory(“name”));
emailCol.setCellValueFactory(new PropertyValueFactory(“email”));
buildData();
}
public void buildData() {
Connection connect = new Connection();
Statement st = connect.Connect();
data = FXCollections.observableArrayList();
try {
ResultSet rs = st.executeQuery("SELECT * FROM USER");
while (rs.next()) {
ObservableList<User> row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
row.add(rs.getString(i));
System.out.println(row);
}
data.add(pol);
} …Run Code Online (Sandbox Code Playgroud) 操作系统:OSX Mountain Lion.
系统:虚拟BOX 4.2.6.
Java:1.7.0.40-ea-b34
我想为我的JAVAFX应用程序禁用硬件加速,因为我的系统(mac)上没有硬件加速.因此,当没有硬件加速时,我在执行我的JAVAFX应用程序时遇到致命错误.这个错误与"Prism Engine管道"有关,它发生在java试图执行openGL本机库时.所以我想禁用棱镜.
我看到有一些控制棱镜行为的vm args就像...... Dprism.forceGPU = true;
是否有类似上面禁用棱镜或openGL请求的东西?
致命错误(openGl相关代码)
Stack: [0x000000016c8f9000,0x000000016c9f9000], sp=0x000000016c9f7f40, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libobjc.A.dylib+0x639f] objc_msgSend_fixup+0x5f
C [AppKit+0x28134c] -[NSOpenGLContext initWithFormat:shareContext:]+0xac
C [libprism-es2.dylib+0x4e9f] createContext+0x1b3
C [libprism-es2.dylib+0x4729] Java_com_sun_prism_es2_gl_mac_MacGLFactory_nInitialize+0xa2
j com.sun.prism.es2.gl.mac.MacGLFactory.nInitialize([I)J+0
j com.sun.prism.es2.gl.mac.MacGLFactory.initialize(Ljava/lang/Class;Lcom/sun/prism/es2/gl/GLPixelFormat$Attributes;)Z+73
j com.sun.prism.es2.ES2Pipeline.<clinit>()V+54
Run Code Online (Sandbox Code Playgroud) 我刚刚将JDK更新为JDK 1.8,因为我无法在1.7版本中找到java FX所需的jfxrt.jar.
我从这里下载了JDK:http: //www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
特别是版本:jdk-8u5-linux-i586.rpm
顺便说一下,我使用opensuse 13.1.
现在安装完成后,我的usr/java/jdk1.9_05/lib仍然不包含jfxrt.jar.
有没有人知道为什么,我读到这个版本实际上应该包含它.我可以解决这个问题吗?
我在Eclipse中跟随两个导入时收到错误:
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
Run Code Online (Sandbox Code Playgroud)
错误是:" 导入javafx.scene.control.Alert无法解析 ",第二个import语句也是如此.
我正在使用Eclipse版本:Luna Service Release 2(4.4.2)并安装了最新JDK 1.8(1.8.0_45)的e(fx)clipse.
其他与javafx相关的import语句没有问题,例如
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.input.MouseEvent;
Run Code Online (Sandbox Code Playgroud)