我是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 […]
我需要限制input到一个TextField整数。 任何build议?
我想在一个滚动事件中缩放窗格中的所有节点。 我到目前为止所尝试的: 当我做scaleX或scaleY时,窗格的边界分别缩放(设置窗格样式-fx-border-color: black;时可见)。 因此,如果我不是从窗格的边界开始,每个事件都不会开始,所以我需要这一切。 下一步,我尝试缩放每个节点,结果变得非常糟糕,就像这样 – (通过点延伸的线)。 或者如果在另一边滚动,则会更less 我尝试的另一种方法是缩放节点的点。 这更好,但我不喜欢它。 它看起来像point.setScaleX(point.getScaleX()+scaleX) ,适用于y和其他节点。
我试图把元素放在一个ListView和TreeView与javafx,但两个控件都不会刷新它们的内容。 我正在使用obvservable列表来控制项目,每次我删除一个项目时,listview或treeview从数据源中删除它。 但是视图不更新。 我仍然看到所有的项目。 唯一的区别是,删除的项目不能再被选中。 例如链接2显示了拼合的项目列表。 图片1显示了它们拼合之前的项目。 项目被折叠,但旧的条目仍然可见。 有没有人知道这个问题的解决scheme。 谢谢大家帮助我 链接1: treeview不折叠链接2: treeview被折叠,但不更新旧的视图 这是我用来显示一个列表视图的自定义单元格工厂: public ListCell<T> call(final ListView<T> param) { ListCell<T> cell = new ListCell<T>(){ @Override protected void updateItem(final T persistentObject, final boolean empty) { super.updateItem(persistentObject, empty); if(persistentObject instanceof POProcessStep){ POProcessStep poProcessStep = (POProcessStep) persistentObject; if (persistentObject != null) { super.setText(poProcessStep.getId() + " – " […]
我试图从一个线程设置一个文本对象的string,但它给了我这个错误: Exception in thread "Thread-4" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-4 at com.sun.javafx.tk.Toolkit.checkFxUserThread(Unknown Source) at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(Unknown Source) at javafx.scene.Scene.addToDirtyList(Unknown Source) at javafx.scene.Node.addToSceneDirtyList(Unknown Source) at javafx.scene.Node.impl_markDirty(Unknown Source) at javafx.scene.shape.Shape.impl_markDirty(Unknown Source) at javafx.scene.Node.impl_geomChanged(Unknown Source) at javafx.scene.text.Text.impl_geomChanged(Unknown Source) at javafx.scene.text.Text.needsTextLayout(Unknown Source) at javafx.scene.text.Text.needsFullTextLayout(Unknown Source) at javafx.scene.text.Text.access$200(Unknown Source) at javafx.scene.text.Text$2.invalidated(Unknown Source) at javafx.beans.property.StringPropertyBase.markInvalid(Unknown Source) at javafx.beans.property.StringPropertyBase.set(Unknown […]
我试图做一个扩展到周围的JPanel的javafx WebView。 根据这个线程: http : //www.coderanch.com/t/634791/JavaFX/java/Resizing-HTMLEditor-JavaFX ,在WebView中有一个错误,你需要调用GridPane.setHgrow和GridPane.setVgrow的WebView。 我用这些调用的代码,但WebView仍然是600x800px。 请注意,场景有一个蓝色的背景,所以你可以看到javafx的东西填充整个JPanel。 但WebView不会填充javafx Group / Scene。 import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; import javafx.scene.paint.Color; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; public class Main { private void initAndShowGUI() { // This method is invoked on […]
我的Application类看起来像这样: public class Test extends Application { private static Logger logger = LogManager.getRootLogger(); @Override public void start(Stage primaryStage) throws Exception { String resourcePath = "/resources/fxml/MainView.fxml"; URL location = getClass().getResource(resourcePath); FXMLLoader fxmlLoader = new FXMLLoader(location); Scene scene = new Scene(fxmlLoader.load(), 500, 500); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } FXMLLoader通过首先调用默认的构造函数和initialize方法FXMLLoader创build相应控制器的实例(通过fx:controller在FXML文件中给出): public […]
也许真的是新手的问题…. 我正在使用Scene Builder开始在FMXL应用程序中学习JavaFX,阅读本教程: http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm 所以,一旦我申请了一些变化,这个2 ID的问题就出现了…我可能会错过或困惑他们的东西… 任何人都可以告诉我在哪些情况下,他们使用一个或另一个?
我有2个fxml文件: 布局(标题,菜单栏和内容) Anchorpane(应该放在另一个fxml文件的内容里面) 我想知道如何从“主”场景中加载内容空间内的第二个文件。 在javaFX中工作是一件好事,还是加载一个新的场景更好? 我试图做这样的事情,但它不工作: @FXML private AnchorPane content; @FXML private void handleButtonAction(ActionEvent event) { content = (AnchorPane) FXMLLoader.load("vista2.fxml"); } 谢谢您的帮助。