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