Tag: javafx

属性属性有意义吗?

因为这是一个关于设计的问题,我将首先说出我拥有的和我想要的东西。 我有一个使用构图的设计。 Cell对象包含Shape和Background对象(此示例为自定义对象)。 这两个中的每一个都有自己的数据来定义它们。 这是代码中的示例: class Cell { Shape shape; Background background; class Shape { int size; Color color; Point location; //… } class Background { Color color; String name; CoverType type; //… } } 我还有一个需要代表许多单元格的GUI,我已经写了如何做(如何使用颜色,大小等来创建我想要的屏幕)。 它包括CellRepresentation,ShapeRepresentation和BackgroundRepresentation等类,它们的显示属性绑定到数据属性(我认为这称为模型和视图)。 我希望能够通过更改上述数据来表示GUI中的更改: 用户可以(例如)右键单击形状并设置其颜色。 因此上面的数据发生了变化,需要在GUI中反映出变化。 用户还可以更改整个形状(例如,从另一个单元格中复制粘贴)。 甚至整个细胞。 这些变化也需要反映在GUI中。 我的问题是哪个类成员需要是我绑定的JavaFX属性。 这就是我的想法:“叶子”属性(大小,颜色,位置……)必须是属性,所以我可以将GUI属性绑定到它们。 但我是否也需要制作形状和背景对象属性? 只有他们的属性在屏幕上有“实际”表示。 理想情况下,我会喜欢它,如果Shape发生变化,那么它的所有属性都会告诉它们的绑定它们可能已经改变了(可能颜色没有,但尺寸确实如此)。 但它不会以这种方式工作 – 即使Shape变化时Color的颜色可以改变Color属性也不会告诉它改变了什么绑定它 。 同样适用于在较大的图片中制作Cell属性,其中有许多单元格等等:属性委托更改的属性。 所以我想到使Shape和Background也属性并注册一个InvalidationListener来更新它们的属性。 这似乎并不正确,因为我认为,通过对财产的所有支持,将有一种方法来做我想要的。 […]

JavaFX BarChart xAxis标记错误的定位

我的窗口有以下控制器: package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.chart.BarChart; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import java.util.Map; import java.util.SortedMap; public class StatisticsController { @FXML private BarChart barChartHistogram; private SortedMap _points; @FXML private CategoryAxis xAxis; @FXML private NumberAxis yAxis; public void onLoad(SortedMap points) { xAxis.setLabel(“Numer indeksu”); yAxis.setLabel(“Ilość punktów”); //barChartHistogram.setBarGap(0); XYChart.Series series1 = new XYChart.Series(); int a […]

我想用其他Controller Files中的一些参数加载新的FXML文件

我已经阅读了关于传递参数的下一个答案,但它们并没有帮助我。 通过参数-JavaFX的FXML JavaFX的从- -沟槽单例的控制器 下面是我努力从事件处理程序打开新的FXML视图,该处理程序易于传递参数。 请寻求帮助。 MainController.java @FXML private void handleButtonAction(ActionEvent event) throws IOException { Context currentContext = new Context(); URL url = getClass().getResource(“ManageTemplateChild.fxml”); FXMLLoader fxmlloader = new FXMLLoader(); fxmlloader.setLocation(url); fxmlloader.setBuilderFactory(new JavaFXBuilderFactory()); bordermanagetemp.getChildren().clear(); bordermanagetemp.getChildren().add((Node) fxmlloader.load(url.openStream())); ((ManageTemplateChildController) fxmlloader.getController()) .setContext(currentContext,Finalvaluetablerow); } ManageTemplateChildController.java private Context context; public void setContext(Context context,Object Finalvaluetablerow) { this.context = context; o = Finalvaluetablerow; […]

为什么会出现JVM错误?

# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007ff17a60c678, pid=4219, tid=140673779791616 # # JRE version: Java(TM) SE Runtime Environment (8.0-b124) (build 1.8.0-ea-b124) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b66 mixed mode linux-amd64 compressed oops) # Problematic frame: # V [libjvm.so+0x665678] jni_invoke_nonstatic(JNIEnv_*, JavaValue*, _jobject*, […]

Java fxml app无法正常工作 – 无法找到符号错误

我从https://github.com/HassanAlthaf/AlarmApplication下载了一个java fxml应用程序,当我尝试运行它时,从MainView.java类中获取“找不到符号”错误。 以下是Mainview.java文件中的代码 import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.TextField; public class MainView implements Initializable { @FXML private TextField hoursField; @FXML private TextField minutesField; @FXML private TextField secondsField; private final AlarmController alarmController; @FXML private void startAlarm(ActionEvent event) { int response = this.alarmController.startAlarm( this.hoursField.getText(), this.minutesField.getText(), this.secondsField.getText() ); […]

init方法中的exception – JavaFX

在使用eclipse导出到.jar文件后,我得到了这个exception。 IntelliJ说的一样。 但我的程序在日食中运行良好。 Exception in thread “main” java.lang.NoClassDefFoundError: javafx/application/Application at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: javafx.application.Application at java.net.URLClassLoader$1.run(Unknown Source) […]

为什么我得到“从内部类引用的局部变量必须是最终的”?

我甚至不确定这个代码是否会做任何事情,即使它有效,但我不知道如何摆脱“从内部类引用的局部变量必须是最终的或有效的最终”错误消息,显示在以“fireballRight [i]”开头的三行上。 Sprite[] fireballRight = new Sprite[50]; public void fireRight() { for(int i = 0; i < 50; i++) { new AnimationTimer() { public void handle() { fireballRight[i].setImage("puercosloco/fireballright.png"); rightx++; fireballRight[i].setPosition(rightx, righty); fireballRight[i].render(gc, 80, 55); } }.start(); } } 任何指导将不胜感激,谷歌似乎没有帮助我这一个。

如何在javafx中播放ogg文件?

我使用AudioClip类播放ogg文件,但它说MEDIA_UNSUPPORTED。在javafx中是否还有其他库来播放ogg文件?

如何在javafx中绘制一条直线,当用户移动鼠标时会自动更新?

所以,我知道如何做自由手线,但我想要一条直线,所以当用户点击一个点到用户释放鼠标的点时,当用户拖动鼠标时,终点应该用鼠标移动,即类似于在绘画应用程序中绘制直线。 目前正在使用此代码: public class JavaFX_DrawOnCanvas extends Application { @Override public void start(Stage primaryStage) { Canvas canvas = new Canvas(400, 400); final GraphicsContext graphicsContext = canvas.getGraphicsContext2D(); initDraw(graphicsContext); canvas.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler(){ @Override public void handle(MouseEvent event) { graphicsContext.beginPath(); graphicsContext.moveTo(event.getX(), event.getY()); graphicsContext.stroke(); } }); canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED, new EventHandler(){ @Override public void handle(MouseEvent event) { graphicsContext.lineTo(event.getX(), event.getY()); graphicsContext.stroke(); } }); […]

Javafx点击Circle并获得它的参考

我在舞台上有一组节点,圆圈。 我希望能够点击其中一个并“选择它”(只需获取它的引用,这样我就可以移动它,改变颜色等) Pane root = new Pane(); root.getChildren().addAll( /* an array of Circle objects */ ); Scene scene = new Scene(root, 500, 500, BACKGROUND_COLOR); scene.setOnMouseClicked(new EventHandler() { @Override public void handle(MouseEvent mouseEvent) { // how do I get which Circle I clicked on? } }); stage.setTitle(TITLE); stage.setScene(scene); stage.show();