标签: javafx-2

JavaFX"位置是必需的." 即使它在同一个包装中

我试图让我的JavaFX程序运行但是遇到了一些困难.我一直收到'java.lang.NullPointerException错误:位置是必需的.' fxml文件与Application类位于同一个包中.这是我非常简单的代码:

package com.kromalights.designer.entry;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));
        primaryStage.setTitle("Kromalights Designer");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的main.fxml文件的副本:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<?scenebuilder-stylesheet mailStyles.css?>
<?import java.net.*?>

<BorderPane prefHeight="300.0" prefWidth="300.0" xmlns:fx="http://javafx.com/fxml/1"
        xmlns="http://javafx.com/javafx/2.2"
        fx:controller="com.kromalights.designer.entry.Controller">
    <bottom>
        <Pane prefHeight="200.0" prefWidth="200.0"/>
    </bottom>
    <center>
        <Pane prefHeight="200.0" prefWidth="200.0"/>
    </center>
    <left>
        <VBox …
Run Code Online (Sandbox Code Playgroud)

java javafx-2

43
推荐指数
7
解决办法
9万
查看次数

使用JavaFX的WebEngine/WebView设置cookie

我似乎找不到任何方法在JavaFX中使用WebEngine/WebView以编程方式设置cookie .API没有给出任何关于如何获得类似HttpRequest的对象来修改标题(这是我在XML-RPC中使用的应用程序)或任何类型的cookie管理器的想法.

这个页面上的任何问题似乎都没有触及这个问题 - 有这个,但它只是在applet中修复bug时禁用cookie ,我的应用程序在桌面上btw.

我想象的唯一方法是通过请求第一页(需要带有sessionID的cookie才能正确加载),获取"拒绝访问"风格的消息,在页面上下文中执行一些javascript来设置cookie和然后刷新.这个解决方案虽然是一个糟糕的用户体验.

如何使用WebEngine设置cookie?


更新:从上面链接的问题中找到线索,我尝试了解使用CookieManager和相关API的一些示例.我找到了这个代码,然后我尝试将其合并到我的应用程序中,结果很奇怪;

MyCookieStore cookie_store = new MyCookieStore();
CookieManager cookie_manager = new CookieManager(cookie_store, new MyCookiePolicy());
CookieHandler.setDefault(cookie_manager);
WebView wv = new WebView();
Run Code Online (Sandbox Code Playgroud)

现在让我们说这样做:

String url = "http://www.google.com/";
wv.getEngine.go(url);
Run Code Online (Sandbox Code Playgroud)

在发出此请求后在Eclipse中进行调试显示cookie存储映射包含cookie:

{http://www.google.com/=[NID=67=XWOQNK5VeRGEIEovNQhKsQZ5-laDaFXkzHci_uEI_UrFFkq_1d6kC-4Xg7SLSB8ZZVDjTUqJC_ot8vaVfX4ZllJ2SHEYaPnXmbq8NZVotgoQ372eU8NCIa_7X7uGl8GS, PREF=ID=6505d5000db18c8c:FF=0:TM=1358526181:LM=1358526181:S=Nzb5yzBzXiKPLk48]}
Run Code Online (Sandbox Code Playgroud)

太棒了

WebEngine只使用底层注册的cookie引擎!但等等,真的吗?让我们在发出请求之前尝试添加cookie ...

cookie_store.add(new URL(url).toURI(), new HttpCookie("testCookieKey", "testCookieValue"));
Run Code Online (Sandbox Code Playgroud)

然后我看看Wireshark中的请求......

GET / HTTP/1.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/535.14 (KHTML, like Gecko) JavaFX/2.2 Safari/535.14 …
Run Code Online (Sandbox Code Playgroud)

cookies javafx httprequest http-headers javafx-2

42
推荐指数
1
解决办法
2万
查看次数

38
推荐指数
3
解决办法
17万
查看次数

如何获取JavaFX的版本号?

如何在运行时找出我正在使用的JavaFX版本?

java javafx javafx-2

38
推荐指数
3
解决办法
3万
查看次数

如何将JavaFX Stage/Frame设置为最大化

我正在使用JavaFX 2.我希望我的框架打开最大化,但我没有看到方法.我在互联网上搜索了一下没有成功.对于我看到的阶段setFullScreen(),setIconified()但我没有看到任何类似的东西setMaximized().

stage frame maximize-window javafx-2

37
推荐指数
4
解决办法
5万
查看次数

如何删除JavaFX阶段按钮(最小化,最大化,关闭)

如何删除JavaFX阶段按钮(最小化,最大化,关闭)?找不到任何相应的Stage方法,所以我应该为舞台使用风格吗?因此有必要实现对话窗口一样Error,Warning,Info.

javafx-2

37
推荐指数
5
解决办法
6万
查看次数

控制显示多行文字?

我需要显示一个多行的只读文本 - 哪个控件可用于此?它应该只像Label一样显示文本,但Label不支持多行?

谢谢你的提示:-)

controls javafx-2

37
推荐指数
4
解决办法
7万
查看次数

如何在JavaFX 2.1中创建模态窗口

我无法弄清楚如何在JavaFX中创建模态窗口.基本上我有文件选择器,我想在用户选择文件时询问用户.我需要这些信息才能解析文件,因此执行需要等待答案.

我已经看到了这个问题但是我无法找到如何实现这个行为.

javafx javafx-2

36
推荐指数
2
解决办法
7万
查看次数

JavaFX FileChooser:如何设置文件过滤器?

我想在JavaFX FileChooser中设置文件过滤器,但我找不到办法.

我的代码:

  FileChooser fc = new FileChooser();
  fc.setTitle("My File Chooser");
  File f = fc.showOpenDialog(primaryStage);
  System.out.println(f);
Run Code Online (Sandbox Code Playgroud)

java user-interface filechooser javafx-2

35
推荐指数
2
解决办法
4万
查看次数

JavaFX打开新窗口

查看此代码,它们显示了一种在登录后显示新窗口的方法.当用户名和密码正确时,它会打开新对话框.我想要一个按钮单击打开新对话框,而不检查用户名和密码.

javafx-2

35
推荐指数
2
解决办法
13万
查看次数