Используйте метод из другого класса JavaFX Java - PullRequest
1 голос
/ 12 февраля 2020

Так что, если вы знакомы с JavaFX, Buttons объекты могут быть изменены следующими Node методами

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

Эти методы работают внутри

public void start(Stage primaryStage) throws Exception {}

Для которых я поймите, start - это метод в Application для запуска цели JavaFX. Поскольку все myButton объекты будут иметь одинаковую структуру, я попытался создать следующий метод в Main.java file

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, но это немного за пределами моих текущих знаний, и мне было интересно, есть ли более простой / более прямой способ сделать это

1 Ответ

2 голосов
/ 12 февраля 2020

Я не JavaFX-человек, но я думаю, что проблема в том, что вы вызываете this.setTranslateX(X); в методе, где this - это не кнопка (я думаю, что это главный объект, возможно, нужно увидеть больше кода для будьте уверены).

Попробуйте это:

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...