panoramix222000 Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Καλημέρα σας, κατ'αρχήν πώς γίνετε να βάλω μέσα σε ένα JPanel μια εικόνα, που η εικόνα να καταλαμβάνει ολόκληρο το panel!Και δεύτερον πώς θα γίνει να κατασκευάσω ένα JTable(δεν ξέρω αν γίνετε αυτό που θέλω με JTable), όπου αυτό το JTable θα είναι ένα εβδομαδιαίο πρόγραμμα, όπου στις στήλες του θα υπάρχουν οι μέρες τις εβδομάδας και κάθε γράμμη θα αποτελεί μια ώρα της μέρας (08:00-21:00). Και εδώ τώρα είναι το δύσκολο σημείο, θα γίνετε η επιλογή από κάποια checkbox και αυτά τα checkbox θα περιέχουν μαθήματα τα οποία θα εμφανίζονται σαν την παρακάτω εικόνα: θα εμφανίζονται πράσινα τα πλαίσια αν δεν υπάρχει όπου δεν ένα μάθημα δεν συμπίπτει με άλλο μάθημα και αν συμπίπτει θα γίνετε κόκκινο όπως την εικόνα. Και τα μαθήματα θα μπορούν να είναι και 3 ώρες! Μήπως θα πρέπει να κάνω extends το JPanel? Ευχαριστώ για την προσοχή σας!!
GrandGamer Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Για την εικόνα δεν χρειάζεσαι JPanel, μπορείς να βάλεις ένα JPictureBox(νομίζω έτσι λέγεται).
panoramix222000 Δημοσ. 23 Δεκεμβρίου 2008 Μέλος Δημοσ. 23 Δεκεμβρίου 2008 Για την εικόνα δεν χρειάζεσαι JPanel, μπορείς να βάλεις ένα JPictureBox(νομίζω έτσι λέγεται). Δεν υπάρχει JPictureBox στην Java, μόνο στην Visual Basic!
alex2005 Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Για το πως να βάλεις ένα background σε JPanel κοίτα εδώ: http://www.java-forums.org/awt-swing/2072-background-image-java.html Για το πως να κάνεις εβδομαδιαίο πρόγραμμα σε JTable δεν καταλαβαίνω πιο είναι το πρόβλημα. Φτιάξε τις γραμμές και στήλες σου και βάλε μέσα ότι θέλεις. Αυτό με τα μαθήματα μπορείς να το εξηγήσεις καλύτερα? Δηλαδή θέλεις κάπου να υπάρχουν κάποια check boxes και να χρωματίζεις μετά τα κελιά του JTable?
panoramix222000 Δημοσ. 23 Δεκεμβρίου 2008 Μέλος Δημοσ. 23 Δεκεμβρίου 2008 Για το πως να βάλεις ένα background σε JPanel κοίτα εδώ: http://www.java-forums.org/awt-swing/2072-background-image-java.html Για το πως να κάνεις εβδομαδιαίο πρόγραμμα σε JTable δεν καταλαβαίνω πιο είναι το πρόβλημα. Φτιάξε τις γραμμές και στήλες σου και βάλε μέσα ότι θέλεις. Αυτό με τα μαθήματα μπορείς να το εξηγήσεις καλύτερα? Δηλαδή θέλεις κάπου να υπάρχουν κάποια check boxes και να χρωματίζεις μετά τα κελιά του JTable? Όπως βλέπεις και στην εικόνα, μπορεί να πέσουν δύο μαθήματα την ίδια ώρα, αυτό πρέπει να φαίνεται! -----Προστέθηκε 23/12/2008 στις 06 : 09 : 02----- Εκεί στο file που πρέπει να βάλεις path πρέπει να βάλω από την αρχή το path? Δηλαδή "C:\Folder\123.jpg"????
alex2005 Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Όπως βλέπεις και στην εικόνα, μπορεί να πέσουν δύο μαθήματα την ίδια ώρα, αυτό πρέπει να φαίνεται! Χμμμ είναι πολύ μυστήριο αυτό....δεν νομίζω ότι γίνεται εύκολα. Επειδή δεν έχω χρόνο να ασχοληθώ με αυτό τώρα θα σου περιγράψω μία ιδέα: Νομίζω ότι ο μοναδικός τρόπος για να το υλοποιήσεις είναι να κάνεις override την paint στα components των κελιών. Εν ολίγοις πρέπει να ξέρεις ότι στην swing τα πάντα είναι JComponent εκ των οποίων τα περισσότερα κληρονομούν από την Container. Το βασικό πλεονέκτημα αυτής της ιδιότητας είναι ότι όλα τα components στην τελική είναι containers ήτοι σχεδόν JPanels. Οπότε μπορείς να κάνεις ότι κάνεις και σε ένα JPanel...δηλαδή να ζωγραφίσεις να προσθέσεις και να αφαιρέσεις αντικείμενα. Αυτό που θα έκανα στην θέση σου είναι να έβρισκα ποιο είναι το default component των κελιών σε JTable. Μετά να έφτιαχνα το δικό μου component που θα κληρονομεί από αυτό το component. Και εκεί μέσα να κάνω override την paint που θα δημιουργεί αυτό το εφέ. Ελπίζω να ήμουν κατανοητός. Edit: Όχι μπορείς να βάλεις relative path.
panoramix222000 Δημοσ. 23 Δεκεμβρίου 2008 Μέλος Δημοσ. 23 Δεκεμβρίου 2008 Edit: Όχι μπορείς να βάλεις relative path. Δηλαδή μπορώ να βάλω στον φάκελο που βρίσκετε η class την εικόνα και να γράψω απλά το όνομα στο path?
alex2005 Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Ναι μπορείς.Και στο παράδειγμα αυτό κάνει βασικά. Αν σκοπεύεις να πακετάρεις το πρόγραμμα σε .jar αρχείο αυτή η λύση δεν θα παίξει αμέσως όμως. Θα πρέπει να διαβάσεις την εικόνα σαν resource. Α και κάτι άλλο. Για πες μου τι IDE χρησιμοποιείς. Γιατί πολλές φορές κάποιοι IDE (βλέπε netbeans) κάνουν κάτι μυστήρια με αυτά.
panoramix222000 Δημοσ. 23 Δεκεμβρίου 2008 Μέλος Δημοσ. 23 Δεκεμβρίου 2008 Χρησιμοποιώ NetBeans, λες αυτά τα interface να με βοηθήσουν http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/TableCellRenderer.html και http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/TableCellEditor.html
alex2005 Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Μου φαίνεται πως το TableCellRenderer θα το χρειαστείς, γιατί θα μπορούσες το custom component που θα φτιάξεις να το κάνεις να δουλεύει και σαν renderer....αντί να φτιάξεις ξεχωριστό renderer. (και τα δύο γίνονται βέβαια) To TableCellEditor δεν νομίζω να το χρειάζεσαι. Χωρίς να θέλω να σε αποτρέψω από το να κάνεις ερωτήσεις.....πιστεύω πως από την στιγμή που σου έδωσα την βασική ιδέα καλύτερο είναι να το ψάξεις στο google. Αυτό που θέλεις να κάνεις δεν το έχω ξανακάνει οπότε στο μόνο που μπορώ να είμαι απόλυτα σωστός είναι στην βασική ιδέα. Όσο αναφορά το netbeans ελπίζω να μην βάζεις τις εικόνες στο source φάκελο. Γιατί εκεί δεν θα τις διαβάσει ποτέ. Θα πρέπει ή να το βάλεις μέσα στον build/classes (Αν διαβάζεις τις εικόνες σαν resources) φάκελο ή στον φάκελο του project(αν τις διαβάζεις όπως στο παράδειγμα).
panoramix222000 Δημοσ. 23 Δεκεμβρίου 2008 Μέλος Δημοσ. 23 Δεκεμβρίου 2008 Αυτό λες να με βοηθήσει? http://www.exampledepot.com/egs/javax.swing.table/CustRend.html
alex2005 Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Ναι αυτό βοηθάει. Μόνο που δεν υπάρχει λόγος να κληρονομείς την JLabel, νομίζω καλύτερα είναι την JPanel. Και μέσα στην τάξη να κάνεις override την paint.
GrandGamer Δημοσ. 23 Δεκεμβρίου 2008 Δημοσ. 23 Δεκεμβρίου 2008 Δεν υπάρχει JPictureBox στην Java, μόνο στην Visual Basic! Ναι έχεις δίκιο δικό μου λάθος. Όσον αφορά το NetBeans αν βάλεις την φωτογραφία στον κεντρικό φάκελο του project θα την διαβάζει κανονικά, αλλά για να την βλέπει το .jar όταν το τρέχεις πρέπει να είναι στον ίδιο φάκελο με το jar.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.