Κοίτα εδώ: http://mybb.ditapps.hua.gr/post/165
acharal
Posts
-
-
Σε παράθυρο να εμφανίζεται. Ναι θα πρέπει να μπορεί να επιλέξει αριθμό ατόμων αν θέλει.
-
Και στα τρεις ναι.
-
Είναι
gr.hua.dit.oop2.countdown.Countdown
καιgr.hua.dit.oop2.countdown.Notifier
αντι γιαgr.hua.dit.oop2.Countdown
καιgr.hua.dit.oop2.Notifier
. -
Δεν εμφανίζει
Downloading
γιατί το βρίσκει στο.m2/repository/...
. Αν το σβήσεις από εκεί όλο το directorygr/hua/...
και ξανατρέξεις τοmvn package
λογικά θα γράψει downloading και θα το έχει ξαναφτιάξει στο.m2
.Για το τελευταίο έχεις κάνει
Maven -> Reload
με δεξί κλικ στο project; -
Μπορείτε αλλά που σκέφτεσαι να το χρησιμοποιήσεις αυτό;
-
Για κοίτα εδώ: http://mybb.ditapps.hua.gr/post/280.
Θα πρέπει να πεις στο
pom.xml
που να βρει το jar όταν το τρέχεις. Αν δεις τοjava-maven-skeleton
έχει κάποιες επιπλέον πληροφορίες. Κοίτα τα υπογραμμισμένα εδώ: https://gitlab.hua.gr/oop2/java-maven-skeleton/-/blob/master/pom.xml#L83-117.- Το πρώτο λέει αντέγραψε όλα τα dependencies sto
target/lib
- και το δεύτερο, βάλε σαν classpath όλα τα jar που βρίσκονται στο
target/lib
.
- Το πρώτο λέει αντέγραψε όλα τα dependencies sto
-
Αν έτρεχε από το IDE αλλά όχι από την κονσόλα τότε πρέπει πάλι να αλλάξετε το configuration του
pom.xml
.- Κοιτάχτε το
pom.xml
του java-maven-skeleton. Περιέχει κάποιες επιπλέον εντολές για να αντιγράφει όλες τις βιβλιοθήκες στοtarget/lib
. - Επίσης δείτε και το τελευταίο εργαστήριο (αν θυμάμαι καλά) που το συζητάμε.
- Κοιτάχτε το
-
Ο
Notifier
δεν είναι κλάση. Πως το χρησιμοποιείς; -
Το link που υπάρχει στο pdf και σας ανοίγει το
musicplayer
είναι προφανώς λάθος. Το σωστό link είναι https://gitlab.com/acharal/maven/-/packages/31828310 το οποίο όμως δεν παίζει κανένα ρόλο για το πως θα ρυθμίσετε την βιβλιοθήκη στην εργασία σας. Οι οδηγίες που υπάρχουν στην εκφώνηση θα πρέπει να δουλεύουν χωρίς καμία αλλαγή.Σας γράφω αναλυτικά τι πρέπει να κάνετε:
Θα πρέπει να αλλάξετε το
pom.xml
ώστε να μοιάζει όπως το παρακάτω.<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>countdown-example</artifactId> <version>1.0-SNAPSHOT</version> <name>Archetype - countdown-example</name> <url>http://maven.apache.org</url> <repositories> <repository> <id>gitlab-maven</id> <url>https://gitlab.com/api/v4/projects/41008035/packages/maven</url> </repository> </repositories> <dependencies> <dependency> <groupId>gr.hua.dit.oop2</groupId> <artifactId>countdown</artifactId> <version>1.0.0</version> </dependency> </dependencies> </project>
Δηλαδή να έχει το section
repositories
και το sectiondependencies
αν δεν το έχει ήδη.
Μετά τρέχοντας στην κονσόλα:❯ mvn package [INFO] Scanning for projects... [INFO] [INFO] -------------------< org.example:countdown-example >-------------------- [INFO] Building Archetype - countdown-example 1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- Downloading from gitlab-maven: https://gitlab.com/api/v4/projects/41008035/packages/maven/gr/hua/dit/oop2/countdown/1.0.0/countdown-1.0.0.pom Downloaded from gitlab-maven: https://gitlab.com/api/v4/projects/41008035/packages/maven/gr/hua/dit/oop2/countdown/1.0.0/countdown-1.0.0.pom (3.3 kB at 3.3 kB/s) Downloading from gitlab-maven: https://gitlab.com/api/v4/projects/41008035/packages/maven/gr/hua/dit/oop2/countdown/1.0.0/countdown-1.0.0.jar Downloaded from gitlab-maven: https://gitlab.com/api/v4/projects/41008035/packages/maven/gr/hua/dit/oop2/countdown/1.0.0/countdown-1.0.0.jar (11 kB at 9.2 kB/s) [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ countdown-example --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 4 resources from src/main/resources to target/classes [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ countdown-example --- [INFO] No sources to compile [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ countdown-example --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory /Users/angel/lectures/oop2/labs/countdown-example/src/test/resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ countdown-example --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ countdown-example --- [INFO] No tests to run. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ countdown-example --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.869 s [INFO] Finished at: 2025-01-04T17:29:28+02:00 [INFO] ------------------------------------------------------------------------
θα δείτε ότι προσπάθησε να κατεβάσει την βιβλιοθήκη από το
https://gitlab.com/api/v4/projects/41008035/packages/maven/gr/hua/dit/oop2/countdown/1.0.0/countdown-1.0.0.jar
.Αν χρησιμοποιείτε κάποιο IDE θα πρέπει να κάνετε refresh / reload το pom.xml για να ενημερωθεί για την καινούργια βιβλιοθήκη. Συνήθως αυτή η επιλογή υπάρχει με δεξί κλικ στο project σας.
-
Θα έλεγα για την τρίτη λειτουργία να αρκεστείτε στην μία συνταγή -- δηλαδή να μην επιτρέπετε στον χρήστη να εκτελεί πολλές συνταγές.
-
Καταρχάς για να σιγουρευτείς ότι δεν υπάρχει σφάλμα με την βιβλιοθήκη χρησιμοποίησε την γραμμή εντολών και κάνε
mvn package
-- θα κατεβάσει την βιβλιοθήκη και ότι χρειάζεται και θα μεταγλωττίσει τον κώδικα σου.Αν κολλάει στο κατέβασμα της βιβλιοθήκης τότε πάει κάτι λάθος.
Αν το κατεβάζει και κολλάει στην μεταγλώττιση τότε φταίει ο κώδικας που γράφεις. Σιγουρέψου ότι κάνεις import το
gr.hua.dit.oop2.Notifier
-
Προσπάθησε να θέσεις το
setMaximumSize
και τοsetPreferredSize
τουJTable
.Επίσης κοίταξε μήπως αυτό μπορεί να γίνει "αυτόματα" με κάποια ρύθμιση του
JTable
, πχ. setFillsViewportHeight αν και λέει οτι το default είναιfalse
. -
όπως και στο πρώτο μέρος
-
Ναι ο χρήστης θα πρέπει να μπορεί να κάνει όλες τις λειτουργίες μέσω παραθύρων οπότε ότι input χρειάζεται το πρόγραμμα θα πρέπει να το ζητάει.
-
Αν είστε μερακλήδες μπορείτε να κρατήσετε και τoυς δύο τρόπους για είσοδο των δεδομένων (terminal ή windows). Αλλά δεν είναι απαραίτητο αν σας δυσκολέψει -- αν τα έχετε οργανώσει καλά δεν θα έπρεπε να είναι μεγάλη δυσκολία.
Οπότε αν κρατήσετε και τα δύο θα πρέπει να βάλετε ένα επιπλέον option όπως λες. Η λογική συμπεριφορά θα ήταν ως εξής:
- αν δεν πάρει ορίσματα στο terminal τότε ανοίγει τα windows.
- αν πάρει ορίσματα στο terminal (πχ. αρχεία) τότε ανοίγει τα windows με φορτωμένα αυτά τα αρχεία.
- αν πάρει επιπλέον όρισμα στο terminal (συνήθως αυτά τα προγράμματα τα λένε headless) τότε δουλεύει μόνο το terminal χωρίς να ανοίξει windows.
Με άλλα λόγια όπως τα λες απλώς να είναι default τα windows και με επιλογή χωρίς.
-
Ε μπορείτε να κάνετε κάτι καλύτερο από αυτό: για εμφάνιση λιστών θα πούμε σε επόμενα μαθήματα τα
JList
καιJTable
. -
Όχι δεν είναι απαραίτητο. Το .gitignore υπάρχει μόνο για να το διαβάζει το git και να ξέρει ποια αρχεία να αγνοήσει. Αν δεν υπάρχει git τότε είναι άχρηστο. Συνήθως θα το δεις στα projects του github γιατί πολύ συχνά πρέπει να αγνοήσει κάποια αρχεία οπότε το βάζουν και αυτό μέσα. Από την άλλη και να μην το έχει κάποιος δεν χάλασε ο κόσμος.
-
Δεν πειράζει όχι. Το .idea συνήθως δεν χρειάζεται να υπάρχει (ούτε στο zip, ούτε στο git).
-
Αν το χρησιμοποιήσεις από την κονσόλα δουλεύει; Δηλαδή κάνοντας
mvn package
.
Αν δουλεύει τότε το IDE θέλει reload (αν είναι το intellij έχει επιλογή reload maven project ή κάτι παρόμοιο.
Ερωτηση για τον χρονο
Ερωτηση για την λειτουργια
Αριθμός ατόμων
Πρόβλημα με την Βιβλιοθήκη Countdown
Πρόβλημα με την Βιβλιοθήκη Countdown
Custom Components
ΠΡΟΒΛΗΜΑ ΜΕ ΤΗΝ COUNTDOWN
Για την βιβλιοθήκη Countdown
Για την βιβλιοθήκη Countdown
Για την βιβλιοθήκη Countdown
Επιλογή Συνταγής
Countdown library και εκτέλεση συνταγής
Πρόβλημα με το layout (τεράστια κενά ανάμεσα στα components)
Εμφάνιση λίστας αγορών και της ίδιας της συνταγής στο GUI
"Συνένωση" λειτουργιών 1ου και 2ου παραδοτέου
"Συνένωση" λειτουργιών 1ου και 2ου παραδοτέου
Εμφάνιση λίστας αγορών και της ίδιας της συνταγής στο GUI
ZIP αρχείο
ZIP αρχείο
Βιβλιοθήκη Cowntdown