首页 > 解决方案 > 使用另一个 JavaFX 类 Java 中的方法

问题描述

所以如果你熟悉JavaFX,Buttons可以通过以下Node方法修改对象

myButton.setTranslateX(10);
myButton.setTranslateY(-10);

这些方法在内部有效

public void start(Stage primaryStage) throws Exception {}

据我了解,这start是一种Application运行 JavaFX 目的的方法。由于所有myButton对象都将具有相同的结构,因此我尝试在Main.java文件中创建以下方法

public void createMyButton(double X, double Y, String label, String image_path) throws Exception {
    this.setTranslateX(X);
    this.setTranslateY(Y);
    this.setText(label);
    //TO DO this.setButtonImage(src=image_path);
 }

但是我知道里面的方法createMyButton来自另一个类(Node我认为)。而且(当然)我得到了错误

Cannot resolve method 'setTranslateX' in 'Main' s

因为编译器在我的程序中查找这些方法,而不是在 JavaFX SDK 中。如何在自己的方法中调用其他类方法?我试过了

public void createMyButton(bla bla) throws Exception extends Node
public void createMyButton(bla bla) throws Exception extends Application

但我认为我完全在钻石之外。我也尝试制作自己的class继承其他方法class的方法,但这有点超出我目前的知识范围,我想知道是否有更简单/更直接的 方法来做到这一点

标签: javaclassjavafxmethods

解决方案


我不是 JavaFX 人,但我认为问题在于您调用this.setTranslateX(X);的方法this不是按钮(我认为它可能是 Main 对象,需要查看更多代码才能确定)。

尝试这个:

public Button createMyButton(double X, double Y, String label, String image_path) throws Exception {
    Button button = new Button(...) // not sure how you're initialising your buttons normally
    button.setTranslateX(X);
    button.setTranslateY(Y);
    button.setText(label);
    button.setButtonImage(src=image_path);
    return button
}

然后,当您想在其他地方创建按钮时,您可以调用该方法:

Button button = createMyButton(10, 20, "My Button", "images/button.png")

推荐阅读