java - 使用另一个 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
的方法,但这有点超出我目前的知识范围,我想知道是否有更简单/更直接的 方法来做到这一点
解决方案
我不是 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")
推荐阅读
- xamarin - 断言条件 id 未满足错误 - Xamarin
- php - 在 PHP 中将变量作为我的文件名会忽略句号
- node.js - Mongoose 返回空 JSON 数组
- javascript - 抽象类中的 Typescript 静态方法来创建 self 的实例
- mongodb - MongoDB:如何索引未知字段
- javascript - Ember this 在组件的组件中未定义
- php - 弹性搜索更新非法参数异常
- node.js - Botpress中的节点数量有没有限制
- android - requireActivity()、requireContext() 和 requireFragmentManager() 不适用于 AndroidX
- javascript - 是否可以让两个客户端网页在不同的浏览器但相同的域中进行通信?