Πίνακας περιεχομένων:
- Βήμα 1: Τι θα χρειαστείτε
- Βήμα 2: Ρύθμιση της βάσης δεδομένων σας
- Βήμα 3: Ρύθμιση του NetBeans
- Βήμα 4: Κωδικοποίηση της κύριας τάξης μας
- Βήμα 5: Ορισμός της μεθόδου δημιουργίας ()
- Βήμα 6: Κωδικοποίηση της εφαρμογής μας
- Βήμα 7: Συγκέντρωση και συσκευασία του αρχείου του βάζου μας
- Βήμα 8: Συγχαρητήρια
Βίντεο: Εφαρμογή Java που εκτελείται σε βάση δεδομένων Google Drive: 8 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Θέλατε ποτέ να δημιουργήσετε μια εφαρμογή που να λειτουργεί σε μια δυναμική βάση δεδομένων με την οποία μπορείτε να εργαστείτε εύκολα, να επιτρέπει στους χρήστες που δεν διαθέτουν τεχνολογία να εισάγουν δεδομένα και να μην μειώνουν τους πόρους της εταιρείας; Λοιπόν, τότε έχω μια λύση για εσάς. Σήμερα, θα δημιουργήσουμε μια εφαρμογή που τρέχει στο Google Drive (καλά, συγκεκριμένα τα Υπολογιστικά φύλλα Google) και μπορεί να χρησιμοποιηθεί για διάφορους διαφορετικούς σκοπούς. Παρόλο που αυτό το σεμινάριο θα επικεντρωθεί στη δημιουργία μιας εφαρμογής που βασίζεται σε εκδηλώσεις για να εμφανίσει μια λίστα με γεγονότα που συμβαίνουν σε μια πανεπιστημιούπολη, αυτό το έργο μπορεί εύκολα να ξαναγραφεί για να λειτουργήσει με πολλούς τρόπους, είτε πρόκειται για εφαρμογή αριθμομηχανής σε εφαρμογή που παρακολουθεί αποθέματα για προϊόντα. Επισυνάπτω ένα αντίγραφο της αίτησής μου αν θέλετε να δείτε τι θα κάνουμε. Αποσυμπιέστε το αρχείο zip και εκτελέστε το JAR μέσα σε αυτό. Και τώρα, χωρίς άλλη καθυστέρηση, ας ξεκινήσουμε!
Βήμα 1: Τι θα χρειαστείτε
Για να ξεκινήσετε με αυτό το έργο, θα χρειαστείτε τους ακόλουθους πόρους:
-
Netbeans
Προτείνω τη λήψη Java EE καθώς παρέχει υποστήριξη διακομιστή, αλλά αν δεν θέλετε κάποια περιττά αρχεία ή επιπλέον χώρο στο δίσκο, θα λειτουργήσει επίσης η Java SE. Το Netbeans θα χρησιμεύσει ως IDE για την κωδικοποίηση και τη σύνταξη της εφαρμογής μας
-
Jsoup
Το έχω συμπεριλάβει στα Instructables για λήψη. Είναι ένας αναλυτής HTML που θα μας επιτρέψει να αντλήσουμε πληροφορίες από το δημοσιευμένο υπολογιστικό φύλλο
-
SDK Java (V8)
Κατεβάστε όποιο αρχείο ταιριάζει στο σύστημά σας. Εάν έχετε ήδη το Java SDK σε προηγούμενη έκδοση, προτείνω την ενημέρωση. Ορισμένες από τις λειτουργίες μου χρησιμοποιούν νέες εκφράσεις λάμδα εγγενείς στο v8 και ο κώδικας μπορεί να μην λειτουργεί χωρίς αυτές, ανάλογα με το τι κάνετε
-
Visual Studio (προαιρετικό)
Εντελώς προαιρετικό. Παρόλο που το NetBeans λειτουργεί καταπληκτικά για τη σύνταξη και τη συσκευασία της εφαρμογής μας, δεν είμαι μεγάλος οπαδός του στούντιο ανάπτυξης. Προτιμώ να κωδικοποιώ σε VS, καθώς έχει πιο ωραία διεπαφή. Εάν δεν σας αρέσει αυτό, υπάρχουν πολλά άλλα IDE στο διαδίκτυο, οπότε βρείτε ό, τι σας αρέσει περισσότερο
-
Κωδικός εκκίνησης
Έχω συμπεριλάβει τον κώδικα εκκίνησης στους πόρους αυτού και τον δημοσίευσα επίσης στο GitHub. Σε αυτό, έχω το κύριο αρχείο (Συμβάν) που παρέχει τη δομή για το αρχείο που τρέχει πραγματικά την εφαρμογή, καθώς και το EventTester, το οποίο χρησιμοποιεί JavaFX για τη δημιουργία του GUI για την εφαρμογή. Εάν θέλετε να αποκτήσετε την πλήρη εμπειρία, δεν συνιστώ την αντιγραφή και επικόλληση. Πάρτε το χρόνο σας και διαβάστε αυτό
Οι υπολοιποι:
Βασικές γνώσεις Java. Θα είναι χρήσιμο να γνωρίζετε την Java, όπως να γράφετε λειτουργίες, να δημιουργείτε αντικείμενα κ
Βήμα 2: Ρύθμιση της βάσης δεδομένων σας
Για να ξεκινήσουμε το έργο, πρέπει πρώτα να μπούμε στο Google Drive και να δημιουργήσουμε το φύλλο που θα χρησιμοποιήσουμε για την εκτέλεση της εφαρμογής μας. Μεταβείτε στο drive.google.com και κάντε κλικ στο εικονίδιο "Νέο" στην επάνω αριστερή γωνία και επιλέξτε "Φύλλα" κάτω από αυτό.
Μόλις φορτωθεί το φύλλο σας, προχωρήστε και μετονομάστε το σε κάτι εύκολα αναγνωρίσιμο. Αφού το κάνετε, προχωρήστε και συμπληρώστε την επάνω σειρά με τα ονόματα των δεδομένων σας, όπως τα πράγματα που θα βάλετε σε κάθε στήλη. Κοιτάζοντας το παράδειγμά μου εδώ, έχω επισημάνει την επάνω σειρά με πράγματα όπως "Όνομα συμβάντος", "Ημερομηνία" κ.λπ.
Αφού το κάνετε, αρχίστε να συμπληρώνετε το υπολογιστικό φύλλο σας με τα δεδομένα που θέλετε να συμπληρώσετε. Θυμηθείτε να μορφοποιήσετε όλα τα δεδομένα σας με παρόμοιο τρόπο, έτσι ώστε ο κώδικας να είναι σε θέση να λειτουργήσει μαζί του χωρίς να ρίξει σφάλματα. Για παράδειγμα, εάν σκοπεύετε να χρησιμοποιήσετε ημερομηνίες στον κωδικό σας, προσέξτε να μορφοποιήσετε κάθε ημερομηνία με τον ίδιο τρόπο, διαφορετικά ο κώδικας δεν θα είναι σε θέση να την αναλύσει.
Αφού βάλετε τα δεδομένα σας, δημοσιεύστε το υπολογιστικό φύλλο μεταβαίνοντας στο "Αρχείο" -> "Δημοσίευση στον ιστό". Από εδώ, θα θέλετε να επιλέξετε ολόκληρο το έγγραφο και να βεβαιωθείτε ότι δημοσιεύεται ως αρχείο HTML, με αυτόν τον τρόπο η εφαρμογή μας μπορεί να σχεδιάσει σωστά τα δεδομένα. Αφού δημοσιεύσετε το υπολογιστικό φύλλο σας, βεβαιωθείτε ότι έχετε σημειώσει τον σύνδεσμο που παρέχει. Αυτό θα χρειαστεί αργότερα στην εφαρμογή.
Βήμα 3: Ρύθμιση του NetBeans
Τώρα που έχουμε το υπολογιστικό φύλλο μας, ήρθε η ώρα να δημιουργήσουμε το NetBeans για να ξεκινήσουμε την κωδικοποίηση. Αφού κατεβάσετε και εγκαταστήσετε το NetBeans και το Java SDK, προχωρήστε και δημιουργήστε ένα νέο έργο. Όταν επιλέγετε έναν τύπο, επιλέξτε την κατηγορία "Java" και το έργο "Εφαρμογή Java". Επιλέξτε όπως θα θέλατε να ονομάζεται το έργο σας (ονόμασα το δικό μου απλά "Event"). Επιλέξτε το πλαίσιο ελέγχου δίπλα στη "χρήση αφιερωμένου φακέλου για αποθήκευση βιβλιοθηκών", καθώς και εκείνο εκτός από το "Δημιουργία κύριας τάξης". Μετά από αυτό, η NetBeans θα πρέπει να δημιουργήσει έναν κατάλογο έργων και έργων για να ξεκινήσουμε να δουλεύουμε, όπως αυτός που απεικονίζεται.
Πριν ξεκινήσουμε την κωδικοποίηση, θα πρέπει επίσης να βεβαιωθούμε ότι η NetBeans διαθέτει τη βιβλιοθήκη JSoup που θα χρειαστεί για την ανάλυση του υπολογιστικού φύλλου μας. Στο NetBeans, κάντε δεξί κλικ στο εικονίδιο "Βιβλιοθήκες" στον κατάλογο του έργου σας. Στο αναδυόμενο μενού, επιλέξτε το κουμπί για να προσθέσετε ένα αρχείο.jar. Τώρα, μεταβείτε όπου κι αν τοποθετήσατε τη λήψη του jsoup (πιθανότατα στο φάκελο "Λήψεις", εκτός αν το καθορίσατε αλλού). Επιλέξτε αυτό το αρχείο και προσθέστε το στη βιβλιοθήκη. Εάν επεκτείνετε το φάκελο Βιβλιοθήκες στο NetBeans, θα πρέπει τώρα να δείτε το jsoup.jar σε αυτήν την περιοχή. Αφού το κάναμε, μπορούμε τώρα να ξεκινήσουμε την κωδικοποίηση της εφαρμογής μας.
Βήμα 4: Κωδικοποίηση της κύριας τάξης μας
Έτσι, το πρώτο βήμα στην κωδικοποίηση της εφαρμογής μας είναι η δημιουργία της κύριας τάξης σας. Η κύρια τάξη σας θα είναι όπου δημιουργούμε τα αντικείμενά μας, θα έχουμε τις μεθόδους που αλληλεπιδρούν με το JSoup και πολλά άλλα. Υποθέτοντας ότι όλοι όσοι διαβάζουν αυτό έχουν εμπειρία κωδικοποίησης, προχωρήστε και χρησιμοποιήστε τις ακόλουθες εισαγωγές:
εισαγωγή java.util. Collection;
εισαγωγή java.util. List;
εισαγωγή java.util. ArrayList;
εισαγωγή java.util. Date;
εισαγωγή java.util.stream. Stream;
εισαγωγή java.util.stream. Collectors;
εισαγωγή java.text. SimpleDateFormat;
εισαγωγή java.text. ParseException;
εισαγωγή org.jsoup. Jsoup;
εισαγωγή org.jsoup.nodes. Document;
εισαγωγή org.jsoup.nodes. Element;
εισαγωγή org.jsoup.select. Element?
εισαγωγή javafx.beans.property. SimpleStringProperty;
Αυτό μπορεί να φαίνεται πολύ, και ανάλογα με το έργο σας, όλα μπορεί να μην είναι απαραίτητα. Καθώς συνεχίζουμε να κωδικοποιούμε, η NetBeans θα σας ενημερώνει εάν έχετε μη χρησιμοποιημένες εισαγωγές, ώστε να μπορούμε πάντα να τις διαγράφουμε αργότερα. Ωστόσο, αυτό είναι που χρειαζόμαστε προς το παρόν.
Έχοντας λάβει τις δηλώσεις εισαγωγής, ας προχωρήσουμε και δηλώσουμε την τάξη μας. Εάν σκοπεύετε να χρησιμοποιήσετε Ημερομηνίες ή οποιοδήποτε μη βασικό αντικείμενο κατά την ανάπτυξη του αντικειμένου σας για συγκεκριμένη κλάση, σας συνιστώ να προσθέσετε ένα "εργαλεία συγκρίσιμα" στη δήλωση κλάσης. Αυτό θα σας επιτρέψει να συγκρίνετε αντικείμενα, τα οποία θα σας επιτρέψουν να ταξινομήσετε μια λίστα με ClassObjects αργότερα. Αφού το κάνετε αυτό, προχωρήστε και δηλώστε όλες τις μεταβλητές παρουσίας που θα χρειαστείτε. Για κάθε δημόσια συμβολοσειρά που δημιουργείτε, θα πρέπει επίσης να δημιουργήσετε SimpleStringProperty για αυτήν. Αυτά είναι αντικείμενα JavaFX που θα μας επιτρέψουν να εργαστούμε με τα κύρια αντικείμενα της κλάσης μας αργότερα.
Τώρα, προχωρήστε και δηλώστε ότι έχετε πρόσβαση σε λειτουργίες. Όσον αφορά τις βασικές μεταβλητές σας, μπορείτε να ονομάσετε τις συναρτήσεις σας όποια και αν επιλέξετε. Ωστόσο, για τις λειτουργίες πρόσβασης SSP, πρέπει να χρησιμοποιήσετε τη μορφή getFunctionNameHere (). Αυτό συμβαίνει επειδή αργότερα θα χρησιμοποιήσουμε το JavaFX για να συνδεθούμε με αυτές τις συναρτήσεις και οι συναρτήσεις που θα χρησιμοποιήσουμε απαιτούν από εμάς να ξεκινήσουμε τις λειτουργίες SSP με το get. Μπορείτε να δείτε ένα παράδειγμα παραπάνω.
Αφού ορίσετε όλες τις μεταβλητές πρόσβασης, προχωρήστε και καθορίστε τυχόν άλλες λειτουργίες που μπορεί να χρειαστείτε. Αυτό είναι πολύ συγκεκριμένο για τον χρήστη, καθώς οι λειτουργίες που χρειάζεστε διαφέρουν από έργο σε έργο. Εάν χρειάζεστε κάποια έμπνευση, ελέγξτε το Javadoc μου ή τον πραγματικό κώδικα και δείτε μερικές από τις λειτουργίες που έκανα. Για παράδειγμα, δημιούργησα μια λειτουργία ταξινόμησης που ταξινομεί μια λίστα κατά ημερομηνία, καθώς και συναρτήσεις που επέστρεψαν μόνο Συμβάντα με ομαδικές καταστάσεις δημόσιων και άλλα. Παρόλο που είναι εντάξει να γίνονται αυτά στατικά, ώστε να μπορείτε να κάνετε κάποιες δοκιμές, συνιστώ να μην έχετε καμία στατική μέθοδο μόλις ολοκληρώσετε τον εντοπισμό σφαλμάτων, για να αποφύγετε σφάλματα όταν φτάσουμε στο επόμενο βήμα του έργου.
Βήμα 5: Ορισμός της μεθόδου δημιουργίας ()
Τώρα έρχεται πιθανώς το πιο σημαντικό μέρος του κώδικα, όπου πρόκειται να ορίσουμε τη μέθοδο δημιουργίας (), η οποία είναι αυτή που θα έχει πραγματικά πρόσβαση στην ιστοσελίδα μας και θα μας πάρει τα δεδομένα. Είναι σημαντικό να σημειωθεί ότι θα χρειαστεί να προσθέσετε μια γραμμή εξαίρεσης στη δήλωση της μεθόδου σας, οπότε δεν χρειάζεται να γράψουμε μπλοκ δοκιμών στον κώδικά μας. Για να ξεκινήσετε, προχωρήστε και δηλώστε μια κενή λίστα του αντικειμένου σας. Στην περίπτωσή μου, έμοιαζε
Συμβάντα συμβάντων = νέα ArrayList ()).
Τώρα, πηγαίνετε και βρείτε αυτό το URL που αντιγράψατε νωρίτερα στο δημοσιευμένο υπολογιστικό φύλλο. Δηλώστε αυτόν τον σύνδεσμο ως συμβολοσειρά στην Java και ονομάστε τον όπως θέλετε. Τώρα, προχωρήστε και δηλώστε ένα νέο έγγραφο Jsoup. Μπορείτε να το κάνετε αυτό δημιουργώντας ένα νέο αντικείμενο εγγράφου, όπως π.χ.
Document doc = new Document ();
Τώρα, προχωρήστε και ρυθμίστε το έγγραφό σας να συνδέεται με τη διεύθυνση URL και να λαμβάνετε τα δεδομένα. Για να το κάνετε αυτό, δοκιμάστε:
Document doc = Jsoup.connect (url).get ();
Τώρα, πρέπει να πάρουμε το σώμα του εγγράφου μας, στο οποίο αποθηκεύονται τα πραγματικά δεδομένα.
Σώμα συμβολοσειράς = doc.body (). Κείμενο ();
Τώρα, πρέπει να αρχίσουμε να βγάζουμε δεδομένα από το σώμα. Δεδομένου ότι τα δεδομένα μας βρίσκονται σε έναν πίνακα (αφού ήταν υπολογιστικό φύλλο), πρέπει να τραβήξουμε τον πίνακα από το σώμα. Ας δοκιμάσουμε
Στοιχείο πίνακα = doc.select ("πίνακας"). Get (0);
Αυτό επιλέγει τον Πρώτο πίνακα. Στην περίπτωση αυτή, υπάρχει μόνο ένα. Τώρα, πληκτρολογήστε
Σειρές στοιχείων = table.select ("tr");
Αυτό μας δίνει όλες τις σειρές στον εν λόγω πίνακα.
Έτσι, τώρα, όλα τα δεδομένα μας βρίσκονται μέσα σε αυτήν τη μεταβλητή γραμμών. Αυτό είναι καλό και όλα, αλλά το νόημα της γραφής αυτής της συνάρτησης μέσα σε αυτήν την τάξη είναι έτσι ώστε να μπορούμε να δημιουργήσουμε αντικείμενα από αυτήν. Έτσι, πριν μπορέσουμε να επιστρέψουμε αυτό, πρέπει να δημιουργήσουμε μια λίστα από τις σειρές μας. Για να γίνει αυτό, μπορούμε να χρησιμοποιήσουμε έναν βρόχο for. Πρέπει να σημειώσω ότι αυτό μου πήρε μια μικρή δοκιμή και λάθη για να το κάνω σωστό. Συνειδητοποίησα ότι κατά το τράβηγμα από τις γραμμές, ορισμένα από τα δεδομένα μας δεν είναι χρήσιμα σε αυτήν την κατάσταση, καθώς παρέχουν πράγματα όπως το όνομα του μεμονωμένου φύλλου, την πρώτη σειρά με τις ιδέες δεδομένων μας κλπ. Στο τέλος, έθεσα την αρχική εισάγοντας τον αριθμό για το βρόχο for στο 2, έτσι παρακάμπτει αυτά τα στοιχεία και μπορεί να δημιουργήσει τα στοιχεία μας. Στο τέλος, ανέπτυξα μια ματιά με τον κώδικα
για (int i = 2; i <rows.size (); i ++) {
Σειρά στοιχείου = γραμμές.get (i);
Στοιχεία cols = row.select ("td");
Τώρα, για να δημιουργήσετε ένα αντικείμενο, κάντε κάτι σαν
Όνομα αντικειμένου = νέο αντικείμενο (cols.get (0). Κείμενο ());
Ουσιαστικά, το cols.get (0) θα λάβει τα δεδομένα από τη στήλη σειράς (i) (0) και θα τα μετατρέψει σε μια συμβολοσειρά η οποία μπορεί στη συνέχεια να περάσει στον κατασκευαστή του αντικειμένου.
Αφού ρυθμίσετε την κατασκευή σας, προσθέστε τη στη Λίστα που δημιουργήσαμε νωρίτερα με το list.add (), όπως π.χ.
events.add (όνομα)?
Τώρα, κλείστε τον βρόχο σας και καλέστε τις συναρτήσεις που μπορεί να χρειαστείτε τώρα. Για παράδειγμα, κάλεσα τη λειτουργία ταξινόμησης για να βάλω τα συμβάντα στη σειρά ημερομηνίας. Αφού το κάνετε, επιστρέψτε τη Λίστα σας και μετά τελειώστε με αυτήν την ενότητα!
Βήμα 6: Κωδικοποίηση της εφαρμογής μας
Δημιουργήστε ένα νέο αρχείο και ονομάστε το ό, τι και αν επιλέξετε. Θα χρειαστείτε τις ακόλουθες εισαγωγές:
εισαγωγή java.util. List;
εισαγωγή java.util. ArrayList;
εισαγωγή java.util. Date;
εισαγωγή javafx.geometry. Pos;
εισαγωγή javafx.scene.layout. HBox;
εισαγωγή javafx.application. Application;
εισαγωγή javafx.collections.transformation. FilteredList;
εισαγωγή javafx.scene.text. Font; εισαγωγή javafx.scene.control.*;
εισαγωγή javafx.collections. FXCollections;
εισαγωγή javafx.collections. ObservableList;
εισαγωγή javafx.geometry. Insets;
εισαγωγή javafx.scene. Group;
εισαγωγή javafx.scene. Scene;
εισαγωγή javafx.scene.control. Label;
εισαγωγή javafx.scene.control.cell. PropertyValueFactory;
εισαγωγή javafx.scene.layout. VBox;
εισαγωγή javafx.stage. Stage;
Ξέρω ότι αυτό μπορεί να φαίνεται πολύ, αλλά πιστέψτε με, είναι απαραίτητα για να τρέξουμε τη δημιουργία της εφαρμογής μας. Προχωρήστε και δηλώστε την τάξη σας και βεβαιωθείτε ότι επεκτείνει την εφαρμογή, καθώς αυτό είναι ένα απαραίτητο συστατικό του έργου. Στην αρχή, δηλώστε μια νέα μεταβλητή παρουσίας που είναι TableView του αντικειμένου σας, όπως π.χ.
ιδιωτικός πίνακας TableView = νέο TableView ();
Επίσης, δηλώστε μια κύρια μέθοδο, την οποία θα χρησιμοποιήσουμε για την εκκίνηση της εφαρμογής. Ουσιαστικά, θα πρέπει να μοιάζει με την εικόνα στην κορυφή.
Τώρα, πρέπει να δημιουργήσουμε τη μέθοδο εκκίνησης. Βεβαιωθείτε ότι εμφανίζει εξαίρεση, αφού θα καλέσουμε τη μέθοδο δημιουργίας () από την προηγούμενη τάξη μας. Δημιουργήστε ένα νέο συμβάν με κενές παραμέτρους, απλά για να καλέσουμε τη μέθοδο δημιουργίας με αυτό. Ορίστε μια νέα λίστα και ορίστε την ίση με το αποτέλεσμα της δημιουργίας (). Τώρα, δημιουργήστε ένα νέο ObservableList, το οποίο θα χρησιμοποιηθεί για να συμπληρώσει τον πίνακα μας με τα δεδομένα μας. Ορίστε το ως εξής:
ObservableList data = FXCollections.observableArrayList ();
Τώρα, δημιουργήστε μια νέα σκηνή με:
Σκηνή σκηνής = νέα Σκηνή (νέα ομάδα ());
Ορίστε τον τίτλο, το πλάτος, το ύψος και οτιδήποτε άλλο χρειάζεστε για ό, τι λειτουργεί για εσάς. Μπορείτε να δείτε τις τιμές μου στην εικόνα στο επάνω μέρος. Τώρα, μπορούμε να αρχίσουμε να στήνουμε το τραπέζι μας. Για όλες τις πληροφορίες που θέλετε να εμφανίσετε, δημιουργήστε μια στήλη TableC, όπως:
TableColumn eventCol = νέο TableColumn ("Όνομα συμβάντος"); eventCol.setMinWidth (100); eventCol.setCellValueFactory (νέο PropertyValueFactory ("sName"));
Η παράμετρος "sName" πρέπει να συμπληρωθεί με όποιο όνομα και αν ήταν οι λειτουργίες πρόσβασης SSP, ώστε να μπορεί να λάβει τις τιμές που χρειάζεστε για τα δεδομένα αντικείμενα. Δημιουργήστε όσες στήλες χρειάζεστε και, στη συνέχεια, προσθέστε τις σε έναν πίνακα με
FilteredList flEvent = νέο FilteredList (δεδομένα, p -> true);
table.setItems (flEvent);
table.getColumns (). addAll (eventCol, statCol, groupCol, datingCol, descCol, locationCol);
Εάν θέλετε να προσθέσετε μια γραμμή αναζήτησης όπως έκανα, ελέγξτε τον κώδικα για πληροφορίες σχετικά με τον τρόπο δημιουργίας ενός BoxBox και ενός πεδίου κειμένου, τα οποία θα επιτρέψουν στον χρήστη σας να φιλτράρει τον πίνακα με συγκεκριμένες τιμές. Εάν έχετε επιλέξει να το κάνετε αυτό, θα πρέπει επίσης να δημιουργήσετε ένα hBox για να τα περιέχει, με
HBox hBox = νέο HBox (επιλογήBox, textField);
hBox.setAlignment (POS. CENTER);
Θα χρειαστεί επίσης να προσθέσετε το hBox στη.addAll () μέθοδο παρακάτω.
Διαφορετικά, απλώς δημιουργήστε ένα νέο vBox για να διατηρήσετε τα δεδομένα μας κάνοντας
τελικό VBox vbox = νέο VBox ();
vbox.getChildren (). addAll (ετικέτα, πίνακας);
((Ομάδα) σκηνή.getRoot ()). GetChildren (). AddAll (vbox);
stage.setScene (σκηνή)? stage.show ();
Τώρα, μεταγλωττίστε τον κώδικά σας και εκτελέστε τον και δείτε αν λειτουργεί. Χρησιμοποιήστε το NetBeans για να βρείτε τυχόν σφάλματα, τα οποία θα εμφανίζονται ως κόκκινες γραμμές στη δεξιά πλευρά της οθόνης. Συνεχίστε να το εκτελείτε έως ότου δεν έχετε άλλα σφάλματα και το έργο εκτελείται.
Αφού ολοκληρώσετε την κωδικοποίησή σας, θα σας προτείνω να δημιουργήσετε ένα Javadoc του κώδικα σας, ώστε οι άνθρωποι να μπορούν να δουν τι κάνει ο κώδικά σας. Για να το κάνετε αυτό, κάτω από το κουμπί "Εκτέλεση" στο επάνω μέρος της οθόνης, απλώς πατήστε "Δημιουργία Javadoc". Μπορείτε να βρείτε ένα αντίγραφο του Javadoc μου κοιτάζοντας μέσα στο αρχείο zip στην πρώτη σελίδα και επιλέγοντας το αρχείο index.html.
Βήμα 7: Συγκέντρωση και συσκευασία του αρχείου του βάζου μας
Μόλις διορθώσετε επαρκώς τα σφάλματά σας και το εκτελέσετε με επιτυχία, μπορείτε τελικά να το μεταγλωττίσετε σε ένα αρχείο JAR, το οποίο στη συνέχεια μπορεί να δημοσιευτεί, ώστε άλλοι να μπορούν να εκτελέσουν αυτό το λογισμικό χωρίς την ανάγκη NetBeans ή Jsoup.
Πριν από τη σύνταξη της εφαρμογής σας, βεβαιωθείτε ότι όλα έχουν γίνει. Εάν θέλετε να προσθέσετε τεκμηρίωση και να δημιουργήσετε ένα JavaDoc, προχωρήστε. Εάν έχετε εντολές System.out που εκτυπώνονται στην κονσόλα σας, καταργήστε τις. Ουσιαστικά, βεβαιωθείτε ότι η εφαρμογή σας δεν έχει ανεπιθύμητες εντολές ή λειτουργίες και ότι έχει όλα όσα χρειάζεται για να συσκευαστεί.
Αφού το κάνετε, κάντε δεξί κλικ στο όνομα του έργου στο NetBeans. Θα πρέπει να εμφανιστεί ένα μενού. Πατήστε ιδιότητες (στο κάτω μέρος του μενού) και, στη συνέχεια, πατήστε "Συσκευασία" στην αριστερή πλευρά του νέου αναδυόμενου μενού. Τώρα, βεβαιωθείτε ότι όλα τα πλαίσια ελέγχου είναι επισημασμένα. Η οθόνη σας πρέπει να μοιάζει με την παραπάνω.
Αφού το κάνετε αυτό, κάντε ξανά δεξί κλικ στο έργο σας στο NetBeans. Σε αυτό το σημείο, πατήστε το κουμπί "Clean and Build" και το NetBeans θα αρχίσει να παίρνει τις βιβλιοθήκες και τα αρχεία σας και να τα συγκεντρώνει σε ένα λειτουργικό αρχείο JAR. Εάν όλα πάνε καλά, θα πρέπει να δείτε ένα μήνυμα στην κονσόλα μετά από λίγα λεπτά που σας λέει ότι το JAR σας έχει ολοκληρώσει τη μεταγλώττιση και το αρχείο μπορεί τώρα να εκτελεστεί. Εκτελέστε αυτήν την εφαρμογή και βεβαιωθείτε ότι όλα λειτουργούν. Εάν όχι, κάντε εντοπισμό σφαλμάτων και επανεκκινήστε τη διαδικασία έως ότου επιλυθούν τα σφάλματα.
Βήμα 8: Συγχαρητήρια
Συγχαρητήρια! Εάν ακολουθήσατε όλες τις οδηγίες σωστά και κωδικοποιήσατε τα πάντα καλά, τότε θα πρέπει να έχετε τη δική σας εφαρμογή εργασίας. Το ωραίο είναι ότι τώρα κάθε φορά που εσείς ή οποιοσδήποτε άλλος έχει πρόσβαση στο υπολογιστικό φύλλο σας επεξεργάζεται τα δεδομένα, η εφαρμογή σας θα μπορεί να αλλάζει και να αντιδρά στα νέα δεδομένα. Εδώ είναι ένα γρήγορο βίντεο για το πώς έγινε το δικό μου.
Αν ψάχνετε τρόπους για να βελτιώνεστε και να δημιουργείτε, προτείνω να ελέγξετε μερικές από τις πιο προηγμένες δυνατότητες του JavaFX, όπως το FancyText ή το FancyButton, τα οποία μπορούν να προσθέσουν γραφικά υψηλότερου επιπέδου στην εφαρμογή σας. Καλή τύχη και αφήστε ένα σχόλιο εάν χρειάζεστε βοήθεια ή παρατηρήσετε σφάλμα στον κωδικό μου!
Συνιστάται:
Σύστημα οπτικής παρακολούθησης που βασίζεται σε LoRa για τη γεωργία Iot - Σχεδιάζοντας μια μπροστινή εφαρμογή χρησιμοποιώντας Firebase & Angular: 10 βήματα
Σύστημα οπτικής παρακολούθησης που βασίζεται σε LoRa για τη γεωργία Iot | Σχεδιάζοντας μια Fronted Application χρησιμοποιώντας Firebase & Angular: Στο προηγούμενο κεφάλαιο μιλάμε για τον τρόπο με τον οποίο οι αισθητήρες λειτουργούν με τη μονάδα loRa για να συμπληρώσουν τη βάση δεδομένων Realtime της βάσης firebase και είδαμε το διάγραμμα πολύ υψηλού επιπέδου πώς λειτουργεί ολόκληρο το έργο μας. Σε αυτό το κεφάλαιο θα μιλήσουμε για το πώς μπορούμε
Πώς να φτιάξετε ένα έξυπνο δοχείο με το NodeMCU που ελέγχεται από την εφαρμογή: 8 βήματα
Πώς να φτιάξετε ένα έξυπνο δοχείο με το NodeMCU που ελέγχεται από την εφαρμογή: Σε αυτόν τον οδηγό θα δημιουργήσουμε ένα Smart Pot που ελέγχεται από ένα ESP32 και μια εφαρμογή για smartphone (iOS και Android). Θα χρησιμοποιήσουμε το NodeMCU (ESP32) για τη συνδεσιμότητα και τη βιβλιοθήκη Blynk για το cloud IoT και την εφαρμογή στο smartphone. Τελικά εμείς
Ανάγνωση δεδομένων υπερηχητικού αισθητήρα (HC-SR04) Δεδομένων σε οθόνη LCD 128 × 128 και οπτικοποίηση χρησιμοποιώντας Matplotlib: 8 βήματα
Ανάγνωση δεδομένων υπερηχητικού αισθητήρα (HC-SR04) Δεδομένων σε LCD 128 × 128 και οπτικοποίηση χρησιμοποιώντας Matplotlib: Σε αυτό το διδακτικό, θα χρησιμοποιήσουμε το MSP432 LaunchPad + BoosterPack για την εμφάνιση δεδομένων υπερήχων αισθητήρων (HC-SR04) σε 128 × 128 LCD και στείλτε τα δεδομένα στον Η / Υ σειριακά και οπτικοποιήστε τα χρησιμοποιώντας το Matplotlib
Σύστημα απόκτησης δεδομένων και απεικόνισης δεδομένων για ηλεκτρικό ποδήλατο MotoStudent: 23 βήματα
Σύστημα απόκτησης δεδομένων και απεικόνισης δεδομένων για MotoStudent Electric Racing Bike: Ένα σύστημα απόκτησης δεδομένων είναι μια συλλογή υλικού και λογισμικού που συνεργάζονται για τη συλλογή δεδομένων από εξωτερικούς αισθητήρες, την αποθήκευση και την επεξεργασία τους στη συνέχεια, έτσι ώστε να μπορούν να απεικονιστούν γραφικά και να αναλυθούν, επιτρέποντας στους μηχανικούς να κάνουν
Γιατί ο δίσκος μου εκτελείται στο 100%;: 3 βήματα
Γιατί ο δίσκος μου εκτελείται στο 100%;: Όλα αυτά συμβαίνουν λόγω της υπερβολικής ανάκτησης των δεδομένων που χρησιμοποιείτε συχνά στα παράθυρα 8, τα παράθυρα 8.1 και επίσης τα παράθυρα 10. Το SuperFetch απλώς προφορτώνει και καθιστά τα προγράμματα που χρησιμοποιείτε πιο συχνά γρήγορα για πρόσβαση. Επιτρέπει επίσης προγράμματα παρασκηνίου, απενεργοποίηση