在JavaFX中同时按下键 package javafx\u同时按\u键; 导入javafx.application.application; 导入javafx.scene.scene; 导入javafx.scene.input.KeyCode; 导入javafx.scene.input.KeyEvent; 导入javafx.scene.paint.Color; 导入javafx.scene.control.Label; 导入javafx.scene.layout.BorderPane; 导入javafx.scene.text.Font; 导入javafx.stage.stage; 导入javafx.beans.property.BooleanProperty; 导入javafx.beans.property.SimpleBoleAnProperty; 导入javafx.beans.binding.BooleanBinding; 导入javafx.beans.value.ChangeListener; 导入javafx.beans.value.observeValue; 导入javafx.event.EventHandler; 公共类JavaFX_同时按下_键扩展应用程序 { 最终布尔属性ZPressed=新的SimpleBoleAnProperty(false); final BooleanProperty XPressed=新的SimpleBoleAnProperty(false); 最终布尔绑定ZAndXPressed=ZPressed.和(XPressed); int i=0; @凌驾 公众假期开始(阶段) { BorderPane bp=新的BorderPane(); bp.setStyle(“-fx背景色:线性渐变(从25%25%到100%100%,#DC143C,#661A33”); 场景s=新场景(bp,340300); 标签l1=新标签(); l1.setFont(新字体(“Arial”,56)); l1.setTextFill(颜色为CADETBLUE); 设置中心(l1); l1.setText(整数.toString(i)); //如何响应同时按下的两个键(“Z”和“X”)。 ZAndXPressed.addListener(新的ChangeListener() { @凌驾 public void changed(observeValue
ChangeListener只知道它的对象的状态发生了变化。它不知道它的对象是如何变化的或发生了什么事情。现在的逻辑是在每次ZAndXPressed发生变化时递增,无论是从真变假,还是从假变真 试试这个:在JavaFX中同时按下键 package javafx\u同时按\u键; 导入javafx.application.application; 导入javafx.scene.scene; 导入javafx.scene.input.KeyCode; 导入javafx.scene.input.KeyEvent; 导入javafx.scene.paint.Color; 导入javafx.scene.control.Label; 导入javafx.scene.layout.BorderPane; 导入javafx.scene.text.Font; 导入javafx.stage.stage; 导入javafx.beans.property.BooleanProperty; 导入javafx.beans.property.SimpleBoleAnProperty; 导入javafx.beans.binding.BooleanBinding; 导入javafx.beans.value.ChangeListener; 导入javafx.beans.value.observeValue; 导入javafx.event.EventHandler; 公共类JavaFX_同时按下_键扩展应用程序 { 最终布尔属性ZPressed=新的SimpleBoleAnProperty(false); final BooleanProperty XPressed=新的SimpleBoleAnProperty(false); 最终布尔绑定ZAndXPressed=ZPressed.和(XPressed); int i=0; @凌驾 公众假期开始(阶段) { BorderPane bp=新的BorderPane(); bp.setStyle(“-fx背景色:线性渐变(从25%25%到100%100%,#DC143C,#661A33”); 场景s=新场景(bp,340300); 标签l1=新标签(); l1.setFont(新字体(“Arial”,56)); l1.setTextFill(颜色为CADETBLUE); 设置中心(l1); l1.setText(整数.toString(i)); //如何响应同时按下的两个键(“Z”和“X”)。 ZAndXPressed.addListener(新的ChangeListener() { @凌驾 public void changed(observeValue,java,javafx,Java,Javafx,ChangeListener只知道它的对象的状态发生了变化。它不知道它的对象是如何变化的或发生了什么事情。现在的逻辑是在每次ZAndXPressed发生变化时递增,无论是从真变假,还是从假变真 试试这个: package javafx_pressing_simultaneous_keys; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.input.KeyCode; im
package javafx_pressing_simultaneous_keys;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.paint.Color;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
public class JavaFX_Pressing_Simultaneous_Keys extends Application
{
final BooleanProperty ZPressed = new SimpleBooleanProperty(false);
final BooleanProperty XPressed = new SimpleBooleanProperty(false);
final BooleanBinding ZAndXPressed = ZPressed.and(XPressed);
int i = 0;
@Override
public void start(Stage stage)
{
BorderPane bp = new BorderPane();
bp.setStyle("-fx-background-color: linear-gradient(from 25% 25% to 100% 100%, #DC143C, #661A33)");
Scene s = new Scene(bp, 340, 300);
Label l1 = new Label();
l1.setFont(new Font("Arial", 56));
l1.setTextFill(Color.CADETBLUE);
bp.setCenter(l1);
l1.setText(Integer.toString(i));
// How to Respond to both Keys ("Z" and "X") pressed together.
ZAndXPressed.addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> obs, Boolean werePressed, Boolean arePressed)
{
i++;
l1.setText(Integer.toString(i));
}
});
s.setOnKeyPressed(new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent ke)
{
if (ke.getCode() == KeyCode.Z)
ZPressed.set(true);
else
if (ke.getCode() == KeyCode.X)
XPressed.set(true);
}
});
s.setOnKeyReleased(new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent ke)
{
if (ke.getCode() == KeyCode.Z)
ZPressed.set(false);
else
if (ke.getCode() == KeyCode.X)
XPressed.set(false);
}
});
stage.setScene(s);
stage.setTitle("JavaFX (Pressing Simultaneous Keys)");
stage.setResizable(false);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
//如何响应同时按下的两个键(“Z”和“X”)。
ZAndXPressed.addListener(新的ChangeListener()
{
@凌驾
公共无效已更改(很高兴我能提供帮助。编码愉快!
// How to Respond to both Keys ("Z" and "X") pressed together.
ZAndXPressed.addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue)
{
if (newValue == true)
{
i++;
l1.setText(Integer.toString(i));
}
}
});