खोज…


परिचय

जावाएफ़एक्स सीन बिल्डर एक विज़ुअल लेआउट टूल है जो उपयोगकर्ताओं को कोडिंग के बिना, जल्दी से जावाएफ़एक्स एप्लिकेशन उपयोगकर्ता इंटरफ़ेस डिज़ाइन करने देता है। इसका उपयोग FXML फाइल जेनरेट करने के लिए किया जाता है।

टिप्पणियों

जावाएफ़एक्स सीन बिल्डर एक विज़ुअल लेआउट टूल है जो उपयोगकर्ताओं को कोडिंग के बिना, जल्दी से जावाएफ़एक्स एप्लिकेशन उपयोगकर्ता इंटरफ़ेस डिज़ाइन करने देता है। यूआई घटकों को उपयोगकर्ता कार्य क्षेत्र में खींच और छोड़ सकते हैं, उनके गुणों को संशोधित कर सकते हैं, स्टाइल शीट लागू कर सकते हैं और उनके द्वारा बनाए जा रहे लेआउट के लिए एफएक्सएमएल कोड स्वचालित रूप से पृष्ठभूमि में उत्पन्न होता है। परिणाम एक FXML फ़ाइल है जिसे तब UI को एप्लिकेशन के तर्क से बांधकर एक जावा प्रोजेक्ट के साथ जोड़ा जा सकता है।

एक आदर्श दृश्य नियंत्रक (MVC) के दृष्टिकोण से:

  • उपयोगकर्ता इंटरफ़ेस का वर्णन युक्त FXML फ़ाइल, दृश्य है।
  • नियंत्रक एक जावा वर्ग है, वैकल्पिक रूप से प्रारंभिक श्रेणी को लागू करना, जिसे एफएक्सएमएल फ़ाइल के लिए नियंत्रक के रूप में घोषित किया गया है।
  • मॉडल में जावा की ओर से परिभाषित डोमेन ऑब्जेक्ट होते हैं, जिसे कंट्रोलर के माध्यम से व्यू से जोड़ा जा सकता है।

दृश्य बिल्डर स्थापना

  1. ग्लूऑन की वेबसाइट से सबसे हाल का संस्करण डाउनलोड करें , अपने प्लेटफ़ॉर्म के लिए इंस्टॉलर का चयन करें या निष्पादन योग्य जार।

  2. इंस्टॉलर डाउनलोड होने के साथ, अपने सिस्टम पर सीन बिल्डर को स्थापित करने के लिए डबल क्लिक करें। एक अद्यतन JRE शामिल है।

  3. इसे स्टैंडअलोन एप्लिकेशन के रूप में चलाने के लिए दृश्य बिल्डर आइकन पर डबल क्लिक करें।

  4. आईडीई एकीकरण

    जबकि सीन बिल्डर एक स्टैंडअलोन एप्लिकेशन है, यह एफएक्सएमएल फाइलों का उत्पादन करता है जो जावा एसई परियोजना के साथ एकीकृत हैं। आईडीई पर इस परियोजना को बनाते समय, दृश्य बिल्डर पथ के लिंक को शामिल करना सुविधाजनक है, इसलिए एफएक्सएमएल फ़ाइलों को संपादित किया जा सकता है।

    • NetBeans: Windows पर NetBeans-> Tools-> Options-> Java-> JavaFX पर जाएं। Mac OS X पर NetBeans-> Preferences-> Java-> JavaFX पर जाएं। दृश्य बिल्डर होम के लिए पथ प्रदान करें। दृश्य बिल्डर पथ - NetBeans
    • IntelliJ: विंडोज पर IntelliJ-> सेटिंग्स-> भाषा और फ्रेमवर्क-> JavaFX पर जाएं। Mac OS X पर IntelliJ-> प्राथमिकताएं-> भाषा और फ्रेमवर्क-> JavaFX पर जाएं। दृश्य बिल्डर होम के लिए पथ प्रदान करें। दृश्य बिल्डर पथ - IntelliJ
    • ग्रहण: विंडोज पर ग्रहण-> विंडो-> प्राथमिकताएं-> JavaFX पर जाएं। Mac OS X पर ग्रहण-> प्राथमिकताएं-> JavaFX पर जाएं। दृश्य बिल्डर होम के लिए पथ प्रदान करें। दृश्य बिल्डर पथ - ग्रहण

थोड़ा इतिहास

दृश्य बिल्डर प्रोजेक्ट को Oracle द्वारा JavaFX का उपयोग करके बनाया गया था और यह OpenJFX परियोजना के भीतर खुला स्रोत है।

ओरेकल ने बायनेरिज़ प्रदान किए , जब तक कि सीन बिल्डर बिल्डर 2.0, जिसमें जावा एसई 8u40 की रिलीज़ से पहले केवल जावाएफ़एक्स फ़ीचर शामिल हैं, इसलिए Spinner नियंत्रण जैसी नई सुविधाएँ शामिल नहीं हैं।

ग्लूऑन ने बाइनरी रिलीज़ वितरण को संभाला, और यहां से प्रत्येक प्लेटफॉर्म के लिए एक अप-टू-डेट सीन बिल्डर 8+ डाउनलोड किया जा सकता है

इसमें जावाएफएक्स में नवीनतम बदलाव और हाल के सुधार और बग फिक्स भी शामिल हैं।

ओपन सोर्स प्रोजेक्ट यहां पाया जा सकता है जहां मुद्दे, सुविधा अनुरोध और पुल अनुरोध बनाए जा सकते हैं।

Oracle विरासत बायनेरिज़ को अभी भी यहाँ से डाउनलोड किया जा सकता है

ट्यूटोरियल

दृश्य बिल्डर ट्यूटोरियल यहां देखे जा सकते हैं:

FXML ट्यूटोरियल यहां देखे जा सकते हैं।

कस्टम नियंत्रण

लाइब्रेरी प्रबंधक (दृश्य बिल्डर 8.2.0 के बाद से उपलब्ध) का उपयोग करके ग्लूऑन ने पूरी तरह से नई सुविधा का दस्तावेजीकरण किया है जो कस्टम नियंत्रण के साथ तीसरे पक्ष के जार आयात करने की अनुमति देता है।

पुस्तकालय प्रबंधक

SO प्रश्न

टैग से संबंधित: SceneBuilder

FXML का उपयोग करके बेसिक JavaFX प्रोजेक्ट

यह एक मूल परियोजना है जो NetBeans (New Project -> JavaFX -> JavaFX FXML एप्लीकेशन) के साथ बनाई गई FXML का उपयोग करती है। इसमें सिर्फ तीन फाइलें हैं:

मुख्य अनुप्रयोग वर्ग

package org.stackoverflow;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class BasicApplication extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("BasicFXML.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

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

FXML फ़ाइल

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.stackoverflow.BasicFXMLController">
    <children>
        <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
        <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
    </children>
</AnchorPane>

नियंत्रक

package org.stackoverflow;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class BasicFXMLController {

    @FXML
    private Label label;

    public void initialize() {
        // TODO
    }   

    @FXML
    private void handleButtonAction(ActionEvent event) {
        label.setText("Hello World!");
    }

}

Daud

प्रोजेक्ट को बिल्डिंग और रन करने के लिए क्लिक करने योग्य बटन के साथ एक छोटी विंडो प्रदर्शित करनी चाहिए:

प्रोजेक्ट चलाएं

यह काम किस प्रकार करता है

संक्षेप में, मुख्य एप्लिकेशन क्लास में, FXMLLoader, जार / क्लासपाथ से basicFXML.fxml लोड करेगा, जैसा कि FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) द्वारा निर्दिष्ट किया गया है।

basicFXML.fxml लोड करते समय लोडर को नियंत्रक वर्ग का नाम मिल जाएगा, जैसा कि fx:controller="org.stackoverflow.BasicFXMLController" द्वारा निर्दिष्ट किया गया है fx:controller="org.stackoverflow.BasicFXMLController" FXML में।

फिर लोडर उस वर्ग का एक उदाहरण बनाएगा, जिसमें वह उन सभी वस्तुओं को इंजेक्ट करने की कोशिश करेगा जिनके पास एफएक्सएमएल में एक fx:id है और नियंत्रक वर्ग में @FXML एनोटेशन के साथ चिह्नित हैं।

इस नमूने में, FXMLLoader <Label ... fx:id="label"/> आधार पर लेबल बनाएगा, और यह लेबल उदाहरण को @FXML private Label label; में इंजेक्ट करेगा @FXML private Label label;

अंत में, जब पूरे एफएक्सएमएल को लोड किया गया है, तो एफएक्सएमएलएलएडी नियंत्रक के initialize विधि को कॉल करेगा, और जो कोड बटन के साथ एक एक्शन हैंडलर को पंजीकृत करता है, उसे निष्पादित किया जाएगा।

संपादन

जबकि आईडीएमएल के भीतर एफएक्सएमएल फ़ाइल को संपादित किया जा सकता है, यह अनुशंसित नहीं है, क्योंकि आईडीई सिर्फ बुनियादी वाक्यविन्यास जाँच और स्वतः पूर्णता प्रदान करता है, लेकिन दृश्य मार्गदर्शन नहीं।

सबसे अच्छा तरीका दृश्य बिल्डर के साथ FXML फ़ाइल खोल रहा है, जहां फ़ाइल में सभी परिवर्तन सहेजे जाएंगे।

फ़ाइल खोलने के लिए दृश्य बिल्डर लॉन्च किया जा सकता है: दृश्य बिल्डर आइकन

या फ़ाइल को IDE से सीधे सीन बिल्डर के साथ खोला जा सकता है:

  • NetBeans से, प्रोजेक्ट टैब पर, फ़ाइल पर डबल क्लिक करें या राइट क्लिक करें और Open चुनें।
  • IntelliJ से, प्रोजेक्ट टैब पर, फ़ाइल पर राइट क्लिक करें और Open In Scene Builder चयन करें।
  • एक्लिप्स से, प्रोजेक्ट टैब पर, फ़ाइल पर राइट क्लिक करें और Open with Scene Builder चयन करें।

फ़ाइल को दृश्य बिल्डर के साथ संपादित करें

यदि दृश्य बिल्डर ठीक से स्थापित है और उसका पथ IDE में जोड़ा गया है (नीचे टिप्पणियां देखें), तो यह फ़ाइल को खोलेगा:

FXML को सीन बिल्डर के साथ संपादित किया गया

नए कंटेनर या नए नियंत्रणों को बाएं पैन से खींचकर परिवर्तन किया जा सकता है, और सही पैन पर गुणों और लेआउट मूल्यों को बदला जा सकता है।

ध्यान दें कि एक id टैग जो fx:id कोड को जावा कोड में इंजेक्ट करने की अनुमति देता है वह है fx:id । इसे Code फलक में सेट किया जा सकता है:

सेटिंग fx: आईडी

परिवर्तन लागू करने के बाद, फ़ाइल को सहेजें (दृश्य बिल्डर -> फ़ाइल -> सहेजें)। यदि फ़ाइल को सहेजते समय आईडीई से फ़ाइल को संपादित करते हुए परिवर्तन किए जाते हैं, तो उन्हें दृश्य बिल्डर पर अपडेट किया जाएगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow