标签: fxml

具有多个不同控制器的JavaFX 1 FXML文件?

我的应用程序中有两个不同的阶段,即使用相同FXML文件的帮助屏幕.而不是创建2个FXML文件,我想只使用一个,并有两个控制器调用相同的fxml.

唯一的问题是Controller是在FXML文件中分配的.那么,有没有办法在Controller类本身中用代码更改分配的控制器?

我真的想避免重复FXML文件只是为了更改每个文件中的Controller.提前致谢.


controller javafx fxml

7
推荐指数
1
解决办法
6094
查看次数

获取javafx中的所有文本字段值和ID

我有一个包含许多文本字段和其他控件的锚窗格.我想获取所有控件的值以及它们的名称和id.

例如:如何清除所有文本字段值?

java javafx javafx-2 fxml

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

使用正在运行的JavaFX应用程序,使用自己独立的控制器类打开一个新窗口

我正在将SceneBuilder与Netbeans的JavaFX库结合使用.我使用Scenebuilder为控制器类创建fxml和netbeans.目标是构建一个相当复杂的应用程序.

我可以启动一个JavaFX应用程序并连接控制器类就好了.但是,当我尝试打开一个新窗口时,我似乎无法将控制器类绑定到新窗口.为了简单起见,我希望新窗口有一个单独的控制器类,因为后端很复杂.

TL; DR - 尝试使用控制器类在JavaFX应用程序上打开一个新窗口.控制器类没有绑定.

代码示例如下

模型类 - 用于启动应用程序的包装器

public class Model extends Application{
    public static void main(String[] args){
         Application.launch(Model.class, args);
    }
    @Override
    public void start(Stage stage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
        stage.setScene(new Scene(root));
        stage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

Sample.fxml - 主应用程序的fxml文件

Sample.java - extends Initializable,是Sample.fxml的控制器类.下面是我尝试打开标题为"ServerConfigChooser"的新窗口的代码片段

try{
    Parent root = FXMLLoader.load(getClass().getResource("ServerConfigChooser.fxml"));
    FXMLLoader loader = new FXMLLoader(getClass().getResource("ServerConfigChooser.fxml"));
    ServerConfigChooser controller = new ServerConfigChooser();

    loader.setController(controller);
    loader.setRoot(root);

    Stage stage = new Stage();
    stage.setScene(new Scene(root));
    stage.show();
} catch (IOException ex)
Run Code Online (Sandbox Code Playgroud)

ServerConfigChooser.java - 实现Initializable

这就是我遇到问题的地方.我不能简单地使用与.fxml文件中的变量相同的fxid声明变量.调用类时,不会触发initialize()方法.

ServerConfigChooser类中构造函数的原因是我无法自动触发initialize()方法.我在构造函数中手动触发. …

java netbeans javafx-2 fxml scenebuilder

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

通过FXML的JavaFX ImageView不起作用

我ImageView在使用FXML 加载图像时遇到问题.

我的控制器类:

public class BoxViewController {
    @FXML
    private Label label_boxID;

    @FXML
    private ImageView boximage;

    public void initData(ObservableList<BoxProperty> observableList,
                         BoxService sBox, 
                         TableView tableview) {
        this.label_boxID.setText(
            String.valueOf(this.boxproperty.getPboxid()));

        Image image = new Image("boximage.jpg");
        this.boximage = new ImageView();
        this.boximage.setImage(image);
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,使用文本设置标签有效,但图像不会出现在我的ImageView中.对于ImageView,我在FXML文件中添加了一个ID:

 <ImageView fx:id="boximage" 
            disable="false" 
            fitHeight="150.0" fitWidth="200.0"
            layoutX="69.0" layoutY="322.0" 
            pickOnBounds="true" 
            preserveRatio="true" />
Run Code Online (Sandbox Code Playgroud)

我很困惑,为什么这不起作用,因为标签工作,但图像不会加载.
我还检查了是否boximage为空,但事实并非如此.也没有例外.

javafx image imageview fxml

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

FXML文件中的常量

找不到任何关于此的例子.如何在FXML文件中定义常量?

例如(CONTENT_SPACING我想要创建的常量在哪里):

<VBox fx:controller="myapp.Controller" xmlns:fx="http://javafx.com/fxml" alignment="center" spacing="20">
    <fx:define>
        <Double fx:id="CONTENT_SPACING" fx:value="200"/>
    </fx:define>

    <VBox fx:id="content" spacing="$CONTENT_SPACING">
        <!-- My window contents would go here -->
    </VBox>
</VBox>
Run Code Online (Sandbox Code Playgroud)

如果可行,我的代码将在可读性方面受益.谢谢!

variables javafx constants fxml

7
推荐指数
1
解决办法
3017
查看次数

JavaFX TextField CSS

如何使用JavaFX CSS创建类似Android TextField的JavaFX TextField?

例如 : Android TextField

我已经尝试了很多FX css,但没有达到这样的效果.这里http://jsfiddle.net/QKm37/ CSS存在HTML输入类型,但它不适用于JavaFX SceneBuilder.

例如 : /** Not Exist in JavaFX **/

-fx-border: none;

-fx-background: bottom left linear-gradient(#a9a9a9, #a9a9a9) no-repeat, bottom center linear-gradient(#a9a9a9, #a9a9a9) repeat-x, bottom right linear-gradient(#a9a9a9, #a9a9a9) no-repeat;

css java javafx fxml javafx-8

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

JavaFX TextField:自动将文本转换为大写

我的FXMl上有一个JavaFX TextField控件,看起来像这样......

<TextField fx:id="input_search" onKeyPressed="#keyListener" prefHeight="25.0" prefWidth="197.0" />
Run Code Online (Sandbox Code Playgroud)

我想在用户输入时自动将所有字符更改为大写.

我控制器中的代码:

public void keyListener(KeyEvent event){
    //maybe transform the pressed key to uppercase here...
}
Run Code Online (Sandbox Code Playgroud)

java javafx keyevent fxml

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

如何在TabPane中隐藏TabBar?

我正在尝试使用构建下一个/上一个窗口TabPane.我决定使用,TabPane因为它很容易在SceneBuilder中使用和设计.在开始FO的应用程序,我用这个隐藏的TabBar的现在-

tabPane.setTabMinHeight(-10);
tabPane.setTabMaxHeight(-10);
Run Code Online (Sandbox Code Playgroud)

TabPane在此之后的外观 -

在此输入图像描述

如您所见,TabBar仍然只有一小部分(在标题栏下方).我怎样才能完全隐藏它,这样我的TabPane看起来就像一个普通的Pane但是它的所有功能都完好无损?

tabs javafx fxml

7
推荐指数
1
解决办法
5238
查看次数

什么是JavaFx/FXML中的"节点"?

JavaFx/FXML上下文中的"Node"一词是什么意思?如果我搜索这个问题,我发现所有人都在使用"讨论别的东西"一词,但没有解释.例如,这个问题的答案: 如何从控制器类打开JavaFX FileChooser?:

对于场景中的任何节点(例如,根节点;但是使用@FXML注入的任何节点都可以),

chooser.showOpenDialog(node.getScene().getWindow());

节点会是什么,以及如何"注入@FXML"?

java javafx nodes fxml

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

如何向未使用FXML实现Control的节点添加工具提示?

在JavaFX中,Control的子类有一个tooltip属性,这意味着可以使用FXML以声明方式添加Tooltip:

<CheckBox fx:id="someCheckBox" mnemonicParsing="false" text="Do It?">
    <tooltip>
        <Tooltip text="Whether or not to do it."/>
    </tooltip>
</CheckBox>
Run Code Online (Sandbox Code Playgroud)

这是可能的,因为CheckBox是Control的子类.

但是,我希望能够使用FXML向任何场景图节点添加工具提示(即无需使用Java以编程方式添加工具提示).

javafx tooltip fxml

7
推荐指数
1
解决办法
4690
查看次数