javafx
बटन
खोज…
एक एक्शन श्रोता जोड़ना
जब वे सक्रिय हो जाते हैं तो बटन फायर एक्शन ईवेंट (जैसे क्लिक किया जाता है, बटन के लिए कीबाइंडिंग दबाया जाता है, ...)।
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
यदि आप जावा 8+ का उपयोग कर रहे हैं, तो आप एक्शन श्रोताओं के लिए लंबोदा का उपयोग कर सकते हैं।
button.setOnAction((ActionEvent a) -> System.out.println("Hello, World!"));
// or
button.setOnAction(a -> System.out.println("Hello, World!"));
एक बटन के लिए एक ग्राफिक जोड़ना
बटन में एक ग्राफिक हो सकता है। graphic
किसी भी JavaFX नोड, एक तरह हो सकता है ProgressBar
button.setGraphic(new ProgressBar(-1));
एक ImageView
button.setGraphic(new ImageView("images/icon.png"));
या दूसरा बटन भी
button.setGraphic(new Button("Nested button"));
एक बटन बनाएँ
एक Button
का निर्माण सरल है:
Button sampleButton = new Button();
यह बिना किसी पाठ या ग्राफिक के एक नया Button
बनाएगा।
यदि आप किसी पाठ के साथ एक Button
बनाना चाहते हैं, तो बस String
को पैरामीटर के रूप में लेने वाले निर्माता का उपयोग करें (जो Button
के textProperty
को सेट करता है):
Button sampleButton = new Button("Click Me!");
यदि आप किसी ग्राफ़िक या किसी अन्य Node
साथ एक Button
बनाना चाहते हैं, तो इस कंस्ट्रक्टर का उपयोग करें:
Button sampleButton = new Button("I have an icon", new ImageView(new Image("icon.png")));
डिफ़ॉल्ट और रद्द करें बटन
Button
एपीआई सामान्य कीबोर्ड शॉर्टकट को बटन पर असाइन करने का एक आसान तरीका प्रदान करता है, जो कि एक्सेलेनेटरों की सूची को Scene
निर्दिष्ट करने या प्रमुख घटनाओं को स्पष्ट रूप से सुनने की आवश्यकता के बिना होता है। अर्थात्, दो सुविधा विधियाँ प्रदान की गई हैं: setDefaultButton
और setCancelButton
:
setDefaultButton
कोtrue
सेट करने सेButton
को हर बार फायर करने का कारण बनेगा जब वहKeyCode.ENTER
ईवेंट प्राप्त करता है।setCancelButton
कोtrue
सेट करने सेButton
को हर बार आग लगने का कारण बनता है कि वहKeyCode.ESCAPE
ईवेंट प्राप्त करता है।
निम्न उदाहरण दो बटन के साथ एक Scene
बनाता है जिसे दर्ज या भागने की चाबियाँ दबाए जाने पर निकाल दिया जाता है, भले ही वे केंद्रित हों या नहीं।
FlowPane root = new FlowPane();
Button okButton = new Button("OK");
okButton.setDefaultButton(true);
okButton.setOnAction(e -> {
System.out.println("OK clicked.");
});
Button cancelButton = new Button("Cancel");
cancelButton.setCancelButton(true);
cancelButton.setOnAction(e -> {
System.out.println("Cancel clicked.");
});
root.getChildren().addAll(okButton, cancelButton);
Scene scene = new Scene(root);
यदि ये KeyEvents
किसी भी मूल Node
द्वारा उपभोग किए जाते हैं तो उपरोक्त कोड काम नहीं करेगा:
scene.setOnKeyPressed(e -> {
e.consume();
});