如何使用其他类中的非静态公共方法

时间:2019-04-05 12:45:26

标签: javafx

我想调用非静态公共方法(在我的主程序中),该方法更新了我的一些GUI对象,这些对象是通过另一个按钮(在我的示例中)通过单击按钮或在我的示例中通过按一个键盘键。

我尝试从No2类调用公共静态方法,该方法会更改bool的值。与此并行的是,我有一个计时器,该计时器用作一种机制,用于查找bool值的变化并触发Main类中的方法,该方法然后更新GUI对象。

No2Class-具有应触发主要事件中的方法的事件

public class No2Class extends Application{
    private void handleKeyboardProzor(Scene scene, final Node root) {
    scene.setOnKeyPressed((KeyEvent event) -> {
        switch (event.getCode()) {
            case A:
                Main.vSwap();
                break;
        }
    });
}

主要-应该更新的一个

///...
@FXML
private ImageView img_R1;

boolean bSwap=true, bSwap1=true,bVis=true;

final long minUpdateInterval = 500; 
final LongProperty lastUpdate = new SimpleLongProperty();
AnimationTimer timer = new AnimationTimer() {
    @Override
    public void handle(long now) {
        df.setMaximumFractionDigits(4);
        if (now - lastUpdate.get() > minUpdateInterval) {
            if(bSwap!=bSwap1){
                updateMethod();
                bSwap1=bSwap;
            }
        }
    }
});

Public static void vSwap(){
    bSwap=!bSwap;
} 

public void updateMethod(){
    img_R1.setVisible(!bVis);
}
//...

所以我希望在我的No2Class中按下键“ A”时,主类中img_R1的可见性发生变化。而这段代码正是这样做的。我真正的问题是:是否有更优雅的方法或者应该说更正确的方法,因为我不认为为此类事情使用活动计时器是它的真实用法?

0 个答案:

没有答案