कैसे Ctrl के संयोजन के साथ JavaFX में एक शॉर्टकट घटना जोड़ने के लिए + पी + X

वोट
1
table.setOnKeyPressed(new EventHandler<KeyEvent>() {
  // final KeyCombination kb = new KeyCodeCombination(KeyCode.P, KeyCombination.CONTROL_DOWN);
  // final KeyCombination k = new KeyCodeCombina

  public void handle(KeyEvent key) {
    if (key.getCode() == KeyCode.P && key.isControlDown()) {
      //My Code
    }
  }
});

मैं Ctrl के शॉर्टकट keycombination के साथ घटना आह्वान करने के लिए + पी + X चाहते

07/11/2014 को 17:06
उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
2

यह वास्तव में समझने के लिए Ctrl + P + X का मतलब है एक छोटे से कठिन है। मुझे लगता है करने के लिए इसका मतलब है कि आप Ctrl प्रेस जा रहा हूँ, तो तुम पी दबाते हैं, तो आप एक्स प्रेस (संभावित पी छोड़ने से पहले आप एक्स प्रेस)। मैं भी मान लेंगे कि पी आदेश मामलों, जैसे ctrl दबाएं, फिर एक्स फिर दबाएं गिनती नहीं होगी। वैसे भी मेरी ओर से अटकलों का एक सा है, शायद नहीं आप वास्तव में क्या चाहते हैं, लेकिन उम्मीद है कि आपके द्वारा दी गई समाधान का सार मिलता है और अपनी स्थिति के लिए यह अनुकूल करने के लिए सक्षम हो जाएगा।

इतना है कि यह कुंजी दबाव की स्थिति पर नज़र रखने के निर्धारित करने के लिए कुंजी संयोजन गतिवान कर सकते हैं समाधान दोनों कुंजी दबाव और विज्ञप्ति पर नज़र रखता है।

import javafx.application.Application;
import javafx.beans.property.*;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.input.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.time.LocalTime;

public class KeyCombo extends Application {

    KeyCombination ctrlP = KeyCodeCombination.keyCombination("Ctrl+P");
    KeyCombination ctrlX = KeyCodeCombination.keyCombination("Ctrl+X");

    @Override 
    public void start(Stage stage) throws Exception {
        Label lastPressedLabel = new Label();

        TextField textField = new TextField();

        BooleanProperty pDown = new SimpleBooleanProperty(false);

        textField.setOnKeyPressed(event -> {
            if (ctrlP.match(event)) {
                pDown.set(true);
            }

            if (pDown.get() && ctrlX.match(event)) {
                pDown.set(false);
                lastPressedLabel.setText(
                        LocalTime.now().toString()
                );
            }
        });

        textField.setOnKeyReleased(event -> {
            if (!event.isControlDown()) {
                pDown.set(false);
            }
        });

        VBox layout = new VBox(10,
                new Label("Press Ctrl+P+X"),
                textField,
                lastPressedLabel
        );
        layout.setPadding(new Insets(10));
        Scene scene = new Scene(layout);
        stage.setScene(scene);

        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

आप कर सकते हैं, तो मैं एक सरल नियंत्रण योजना, जैसे बस Ctrl + P या उपयोग करने की कोशिश की सलाह देंगे Ctrl + X (जो सीधे कुंजी कोड संयोजन घटना मिलान के द्वारा समर्थित है), बल्कि Ctrl के एक समग्र नियंत्रण योजना का उपयोग करने से + P + X।

07/11/2014 को 22:57
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more