标签: javafx-8

JavaFx可编辑组合框:在项目选择上显示toString

我有一个ComboBox<Perosn>类型Person,其中我添加了几个Person类的对象,

我已经使用setCellFactory(Callback)方法在ComboBox下拉列表中显示人名

combobox.setCellFactory(
    new Callback<ListView<Person >, ListCell<Person >>() {
        @Override
        public ListCell<Person > call(ListView<Person > p) {
            ListCell cell = new ListCell<Person >() {
                @Override
                protected void updateItem(Person item, boolean empty) {
                    super.updateItem(item, empty);
                    if (empty) {
                        setText("");
                    } else {
                        setText(item.getName());
                    }
                }
            };
            return cell;
        }
    });
Run Code Online (Sandbox Code Playgroud)

并且,在选择上setButtonCell(ListCell)显示名称的方法combobox.

combobox.setButtonCell(
    new ListCell<Object>() {
        @Override
        protected void updateItem(Person t, boolean bln) {
            super.updateItem(t, bln); 
            if (bln) {
                setText(""); …
Run Code Online (Sandbox Code Playgroud)

combobox javafx javafx-2 javafx-8

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

JavaFX8 - 找不到sun.util.logging.PlatformLogger在NetBeans 8中的异常

我最近在Windows 8.1机器上安装了JDK8 + Netbeans8(从Oracle站点下载了捆绑的安装程序).

当我创建一个非常简单的JavaFX FXML应用程序时,它工作正常.但是,当我使用向导添加一个新的数据库实体类并编译它时,我得到以下堆栈跟踪:

Note: Creating non-static metadata factory ...
error: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for sun.util.logging.PlatformLogger not found


An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.RuntimeException: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for sun.util.logging.PlatformLogger not found
at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1173)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:859)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.main.Main.compile(Main.java:381)
at com.sun.tools.javac.main.Main.compile(Main.java:370)
at com.sun.tools.javac.main.Main.compile(Main.java:361)
at com.sun.tools.javac.Main.compile(Main.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56)
at …
Run Code Online (Sandbox Code Playgroud)

java netbeans javafx-8 netbeans-8

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

在JavaFX中显示禁用控件上的工具提示

可以在禁用的控件上显示工具提示吗?

我有以下代码,这不起作用:

txt_searchText.setDisable(true);
txt.searchText.setTooltip(new Tooltip("Message"));
Run Code Online (Sandbox Code Playgroud)

有没有人解决这个问题?

谢谢

java javafx javafx-8

10
推荐指数
1
解决办法
3173
查看次数

如何在JavaFX中获取场景中的所有节点?

在C#中,我找到了一个非常好的方法,它允许你从指定的控件中获取所有后代和所有的后代.

我正在为JavaFX寻找类似的方法.

我看到Parent该类是我想要使用的类,因为它是从中派生所有带子项的Node类的类.

这就是我到目前为止(我还没有真正在谷歌上找到任何搜索,比如"JavaFX从场景中获取所有节点"):

public static ArrayList<Node> GetAllNodes(Parent root){
    ArrayList<Node> Descendents = new ArrayList<>();
    root.getChildrenUnmodifiable().stream().forEach(N -> {
        if (!Descendents.contains(N)) Descendents.add(N);
        if (N.getClass() == Parent.class) Descendents.addAll(
            GetAllNodes((Parent)N)
        );
    });
}
Run Code Online (Sandbox Code Playgroud)

那么如何判断N是父母(或从父母延伸)?我这样做了吗?它似乎没有工作......它从根(父)节点抓取所有节点,但不从其中包含子节点的节点抓取.我觉得这可能是一个答案,但我只是问这个问题......错了.我该怎么做呢?

java recursion javafx javafx-8

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

如何向JavaFX 8 TableView添加行和列

我在互联网上看到了向TableView添加行的示例,例如使用Oracle文档中的Person类.

但是我有一个可变数量的列,所以我不能绑定到Person(或任何其他)bean业务对象.

Oracle示例继续展示如何将列绑定到属性名称,但为此,它仅显示如何添加列,而不显示行.

我的问题是,有人可以指向一个Hello,World示例,动态地将任意列和/或行添加到JavaFX 8 TableView中吗?

java tableview javafx-8

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

在WebEngine JavaFX中设置HTTP标头

如何传递HTTP标头

JavaFX中的"接受语言","接受","接受编码"到WebEngine?我已尝试使用JavaFX的WebEngine/WebView设置cookie中指定的方法,但它不起作用.是否有任何API在Java 8中公开以实现此目的?请建议.

javafx javafx-8 javafx-webengine

10
推荐指数
1
解决办法
2961
查看次数

JavaFX按钮大小相同

我有这些不同大小的按钮:

图片

如何使所有按钮与大小相同?

javafx javafx-8

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

在javaFX中获取节点的实际位置

在JavaFX中获取节点绝对位置的最佳方法是什么?假设我们在一个窗格(Hbox,Stackpane,......或任何其他窗格)中有一个节点,并且可能有父节点.我想获得该节点的绝对位置并在另一个窗格中使用它?

java javafx javafx-2 javafx-8

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

选择打开JavaFX窗口的监视器

我有两台显示器.我在第二台显示器上打开了Eclipse,但是当我运行JavaFX代码时,JavaFX窗口总是在第一台显示器中打开,每次我必须将它拖到第二台显示器上才能使用它.

我必须这样做,因为当它在第一个监视器上打开时,场景中没有任何组件被加载.仅当我将其拖动到第二个监视器时才会加载它.但是,当我断开第二台显示器时,它会正确加载.

有人可以帮帮我吗?默认情况下,如何在第二台显示器上打开窗口?

注意:我的第一台显示器是Macbook Pro,第二台是用作外接显示器的iMac.

回应评论:

任何简单的javaFX代码都会出现组件在screen1上无法正确加载的问题.例如,为了方便起见,我将@Sergey提供的代码作为答案.

码:

public class FXScreens extends Application {

    @Override
    public void start(Stage stage) {
        VBox root = new VBox(10);
        root.setAlignment(Pos.CENTER);
        Scene scene = new Scene(root, 200, 250);

        int index = 1;
        for (Screen screen : Screen.getScreens()) {
            Rectangle2D bounds = screen.getVisualBounds();

            Button btn = new Button("Move me to Screen " + index++);
            btn.setOnAction((e) -> {
                stage.setX(bounds.getMinX() + 100);
                stage.setY(bounds.getMinY() + 100);
            });
            root.getChildren().add(btn);
        }

        stage.setTitle("Screen Jumper");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java multiple-monitors javafx javafx-8

10
推荐指数
1
解决办法
6146
查看次数

JavaFX附带JDK 8?

我有很多关于JavaFX的问题.

JavaFX是否附带JDK 8?JavaFX是否还需要自己的运行时环境?

我查看了我的计算机(我安装了JDK和JRE)但找不到JavaFX ...这是否意味着JavaFX有自己独立的运行时环境和开发工具包?如果是这样,我在哪里可以找到下载链接?我真的很困惑......

如果它已经在我的计算机上以某种方式下载,那么JavaFX如何工作?它是类似于Swing还是完全不同(就像它自己的编程语言一样?)

很抱歉这些基本问题,我是JavaFX的新手.

java javafx-8

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