我正在创建一个跟踪财务状况的大型计划。因此,我通过在其他类中定位元素,然后使用聚合在我的主程序中实现它们来清理我的代码。唯一的问题是我开始处理交互和处理按钮按钮,但我无法正常注册任何按钮。这是一个干净的示例代码,以突出显示问题。
主要执行类
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.application.Application;
import javafx.scene.layout.Pane;
import javafx.event.ActionEvent;
public class testingButton extends Application{
private buttonClass add;
@Override
public void start(Stage stage){
add = new buttonClass();
Pane root = new Pane();
root.getChildren().addAll(add.getB());
Scene scene = new Scene(root, 150,150);
stage.setTitle("Testing Visual elements");
stage.setScene(scene);
stage.show();
}
public void processButtonPress(ActionEvent event){
if(event.getSource() == add.getB()){
System.out.println("testing");
}
}
public static void main(String[] args){
launch(args);
}
}
汇总按钮类
import javafx.scene.control.Button;
public class buttonClass{
private Button b;
public buttonClass(){
b = new Button("Button");
b.setLayoutX(50);
b.setLayoutY(50);
}
public Button getB(){
return b;
}
}
如何按下按钮进行注册?任何帮助表示赞赏。谢谢!
答案 0 :(得分:-1)
以下是您需要的代码......
你需要对按钮应用actionevent而不是试图从actionevent
获取按钮public class JavaApplication3 extends Application {
ButtonClass add;
@Override
public void start(Stage stage) {
add = new ButtonClass();
Pane root = new Pane();
root.getChildren().add(add);
Scene scene = new Scene(root, 150, 150);
stage.setTitle("Testing Visual elements");
stage.setScene(scene);
stage.show();
add.setOnAction((javafx.event.ActionEvent event) -> {
System.out.println("Button pressed");
});
}
public static void main(String[] args) {
launch(args);
}
和按钮类
public class ButtonClass extends Button {
private Button b;
public ButtonClass() {
b = new Button("Button");
b.setLayoutX(50);
b.setLayoutY(50);
}