我有一个只有一个FXML文件的JavaFX应用程序。 在这个文件中我有一个AnchorPane里面有一个StackPane。 这是截图: 当我启动这个应用程序时,我想用AnchorPane自动调整StackPane的大小。 从而; StackPane会自动获取当前可用的宽度和高度。 当我调整应用程序的大小时,AnchorPane会自动resize,但是StackPane保持它的固定大小。 我怎样才能自动resize的StackPane,并使其在其父面板完全拉伸? 我的代码 Main.java package app; 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 { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("Main.fxml")); Scene scene = new Scene(root,800,600); scene.getStylesheets().add(this.getClass().getResource("/app/style1.css").toExternalForm()); stage.setScene(scene); […]
javafx.scene.text.Text和javafx.scene.control.Label有什么区别? 该文件说: 标签是一个不可编辑的文本控件。 Text类定义了一个显示文本的节点。 但是Label类有一个方法“setText”和“textProperty”,因此是可编辑的。
我试图find难以捉摸的JavaFX场景生成器,所以我可以在Intellij中使用它。 我在Windows操作系统上。 甲骨文表示,JavaFX场景生成器包含在一个新的下载中,但无论我如何search,我都找不到它(请参阅http://www.oracle.com/technetwork/java/javafx/downloads/index.html )。 我认为他们已经链接到不正确的页面和谷歌search,因为它让我无处可去。 我已经安装了Java 8 SDK并且工作正常。 显然JavaFX现在已经包含在内了,但是在Java文件夹中没有任何地方可以find场景构build器,它似乎完全没有在线。 请任何人都可以帮忙? 我只是想编写一个小的GUI程序,看起来像JavaFX是要走的路(如果它不是那么随意地消除我这个概念!)
我有JavaFX 2.0应用程序,其中包括两个FXML文件,2个控制器为他们+一个“主”.java文件。 在开始的时候,FXML1被初始化,像这样: public void start(Stage stage) throws Exception { stage.setTitle("Demo Jabber JavaFX Chat"); Parent root = FXMLLoader.load(getClass().getResource("fxml_example.fxml"), ResourceBundle.getBundle("fxmlexample.fxml_example")); Scene scene = new Scene(root, 226, 264); stage.setScene(scene); scene.getStylesheets().add("fxmlexample/fxmlstylesheet.css"); stage.show(); } 然后,当点击一个来自scene1的button时,在其Controller1类的事件处理程序中,我更改了scene1 root,为用户显示新的gui-view。 在这个控制器中,我初始化了一些对象。 比如像这样: public class FXMLExampleController { //some fields… private MySuperObject c; @FXML protected void handleSubmitButtonAction(ActionEvent event) { //some fields… c = new MySuperObject(); […]
我正在尝试使用Javafx进行布局的屏幕键盘。 我正在使用场景生成器来制作FXML文件。 <?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.paint.*?> <?import javafx.scene.text.*?> <AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="186.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"> <children> <VBox layoutX="0.0" layoutY="0.0" prefHeight="186.0" prefWidth="600.0" rotate="0.0" spacing="2.0"> <children> <HBox minHeight="33.0" prefHeight="33.0" prefWidth="600.0" spacing="2.0"> <children> <Label maxWidth="-Infinity" prefHeight="33.0" prefWidth="35.0" text="Milk" textAlignment="CENTER" /> <Label maxWidth="-Infinity" prefHeight="33.0" text="Mister" […]
首先,在编码方面我是一个新手。 我需要在基于javaFXML的应用程序中embedded字体,不知道该怎么做。 我已将字体fontName.ttf粘贴到我的项目源的根目录(即App/src/app/resources的“resources”文件夹中。 我已经将组件(文本)的CSS设置为 #text { -fx-font-family: url(resources/fontName.ttf); } 我也尝试在URL中添加引号,例如url("resources/fontName.ttf"); ,但它不起作用。 我也设置组件的CSS ID,所以不能是问题。 有没有其他工作方式可以这样做? 我已经看到http://fxexperience.com/2010/05/how-to-embed-fonts/ ,但它不工作,因为我有jdk 1.7 u21。 任何想法正确的方式来embedded字体?
我有这个共同的问题,因为它似乎是。 我重置他们后,我的表格视图不会刷新我的项目。 我已经检查了数据,这是新的。 我尝试了互联网的多种解决scheme,但没有成功 无法重置所有的列,因为它增加了一个空的额外(不知道为什么)和resize刚刚打破。 我的表是不可编辑的 。 新数据已更改。 如果更改项目的顺序并更改行(:|),数据将刷新。 我只是没有想法而离开。 目前刷新代码非常简单。 ObservableList<User> data = FXCollections.observableArrayList(User.getResellers()); reseller_table.setItems(data); 新的数据也是正确的。 当我对tableView进行select时,它会返回新的正确的Item。
各位晚上好, 我已经find了一堆已经在这个主题上的post,但我仍然无法设法将一个对象从Controller1传递给Controller2。 有没有完整的教程或一些示例项目,这样做? 我已经得到了很多,直到我陷入困境: 国家class public class Country { private SimpleStringProperty country = new SimpleStringProperty(""); //Constructor public Country() { } //GETTERS public String getCountry() { return country.get(); } //SETTERS public void setCountry(String value) { country.set(value); } @Override public String toString() { return getCountry(); } } 当程序启动时,主FXML被加载(Sample.fxml)。 这包含一个边框窗格,顶部面板中有一个菜单栏,中间有一个内容窗格。 初始化时,我创build一个新的Country对象并将其存储在一个全局variables中。 我有一个方法,当点击一个菜单项时,将另一个FXML加载到内容窗格中: SampleController.java public class SampleController implements Initializable […]
我是javaFX的新手。 我创build了一个定制的search框(扩展TextField)在Java中,检查图像: 我用testing课对它进行了testing,它正在工作。 我想知道现在是否可以创buildFXML文件,而不是将此组件添加到场景构build器中? 怎么做 ? 提前致谢。
@FXML是否需要为每个声明或仅为第一个? 换句话说,我应该使用 @FXML public Label timerLabel = new Label(); @FXML public TextField mainTextField, projectTextField ; @FXML public Button goButton, deleteAllButton ; @FXML public ComboBox<String> projectComboBox ; @FXML public TableView<Entry> mainTable ; @FXML public TableColumn<Entry, String> titleColumn, timeColumn, dateColumn ; @FXML public TableColumn<Entry, Boolean> checkColumn, buttonColumn ; @FXML public checkBox checkAllCheckBox ; 要么 @FXML public Label […]