处理来自另一个类的按钮按下



我正在创建一个大型程序来跟踪财务状况。因此,我通过将元素定位在其他类中来清理代码,然后使用聚合在我的主程序中实现它们。唯一的问题是我已经开始处理交互和处理按钮按下,但我无法正常注册任何按钮按下。下面是突出显示问题的干净示例代码。

主执行类

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;
   }
}

如何按下按钮进行注册?任何帮助,不胜感激。谢谢!

这是您需要的代码...

您需要将操作事件

应用于按钮,而不是尝试从操作事件获取按钮

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);
}

相关内容

  • 没有找到相关文章

最新更新