marios28 Δημοσ. 4 Ιουνίου 2019 Δημοσ. 4 Ιουνίου 2019 3 λεπτά πριν, hihixi είπε Γνωρίζω πως βάζω κουμπιά σε JButton. Το video το είδες; Δες το και προσάρμοσέ το στα μέτρα σου. Από 'κει και πέρα η λογική είναι εύκολη. Αν έχουν το ίδιο id όπως σου γράφουν), στο δεύτερο άνοιγμα, έχουμε match.
tsofras Δημοσ. 4 Ιουνίου 2019 Δημοσ. 4 Ιουνίου 2019 gogogogo προχώρα και εδώ είμαστε Θα σε βοηθήσουμε και ποιο εύκολα απο το να λουπάρουμε το i και το j για να βρούμε που στο καλό είναι η εικόνα
hihixi Δημοσ. 4 Ιουνίου 2019 Μέλος Δημοσ. 4 Ιουνίου 2019 (επεξεργασμένο) Έστω public Icons(int id, String filename) { super(filename); this.id = id; } Μετά κάνω Icons[] icons = new Icons[SIZE/2]; icons[i] = (Icons) new ImageIcon(i, "icons/button-icons/" + i + ".png"); Γιατί στη δεύτερη γραμμή μου πετάει σφάλμα από τη στιγμή που του δίνω int και String; https://prnt.sc/nxg9pd Επεξ/σία 4 Ιουνίου 2019 από hihixi
tsofras Δημοσ. 4 Ιουνίου 2019 Δημοσ. 4 Ιουνίου 2019 59 λεπτά πριν, hihixi είπε Έστω public Icons(int id, String filename) { super(filename); this.id = id; } Μετά κάνω Icons[] icons = new Icons[SIZE/2]; icons[i] = (Icons) new ImageIcon(i, "icons/button-icons/" + i + ".png"); Γιατί στη δεύτερη γραμμή μου πετάει σφάλμα από τη στιγμή που του δίνω int και String; https://prnt.sc/nxg9pd Το ImageIcon έχει constructor? Εσύ έχει βάλει εδώ μόνο το Icons
hihixi Δημοσ. 4 Ιουνίου 2019 Μέλος Δημοσ. 4 Ιουνίου 2019 (επεξεργασμένο) 56 λεπτά πριν, tsofras είπε Το ImageIcon έχει constructor? Εσύ έχει βάλει εδώ μόνο το Icons Χρειάζεται κάτι άλλο; Spoiler public class Icons extends ImageIcon { int id; public int getType() { return id; } public void setType(int type) { this.id = type; } public Icons(int type, String filename) { super(filename); this.id = type; } public Icons(int id, URL location) { super(location); this.id = id; } public Icons(URL location) { super(location); } } Επεξ/σία 4 Ιουνίου 2019 από hihixi
tsofras Δημοσ. 4 Ιουνίου 2019 Δημοσ. 4 Ιουνίου 2019 59 λεπτά πριν, hihixi είπε Χρειάζεται κάτι άλλο; Απόκρυψη περιεχομένων public class Icons extends ImageIcon { int id; public int getType() { return id; } public void setType(int type) { this.id = type; } public Icons(int type, String filename) { super(filename); this.id = type; } public Icons(int id, URL location) { super(location); this.id = id; } public Icons(URL location) { super(location); } } Εσύ πάς να φτιάξεις ένα νέο Instance του ImageIcon , αυτό δεν έχει constructor απο ότι καταλαβαίνω. Constructor έχεις βάλει στο Icons. Οπότε αν ήθελες να φτιάξεις νέο instance του Icons δεν θα είχες πρόβλημα. Αν και με μπερδεύουν λίγο τα ονόματα που διάλεξες αν θέλεις να παίξει θα μεταφέρεις τους constructors στην ImageIcon χωρίς να καλείς την super Στο πολύ απλό για να συνεχίσεις package com.tsofras.digilife.main; import java.net.URL; public class Icon { Integer id; String filename; URL location; public Icon(Integer id, String filename, URL location) { this.id = id; this.filename = filename; this.location = location; } public Integer getId() { return id; } public String getFilename() { return filename; } public URL getLocation() { return location; } @Override public String toString() { return id +" "+ filename; } public boolean equals(Icon icon) { return getId().equals(icon.getId()); } } package com.tsofras.digilife.main; import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import java.util.List; import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.JsonNode; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; public class Main { public static void main(String[] args) throws UnirestException, MalformedURLException { Icon icon1 = new Icon(1, "fish", new URL("http://localhost")); Icon icon2 = new Icon(2, "dog", new URL("http://localhost")); Icon anotherIcon1 = new Icon(1, "fish", new URL("http://localhost")); System.out.println(icon1.toString()); System.out.println(icon2.toString()); System.out.println(icon1.equals(icon2)); System.out.println(icon1.equals(anotherIcon1)); } } Κάποια imports στην Main είναι λίγο άσχετα , είναι Main μπαλαντέρ για να γράφω γρήγορα κάτι και να το τεστάρω
k33theod Δημοσ. 5 Ιουνίου 2019 Δημοσ. 5 Ιουνίου 2019 (επεξεργασμένο) 23 ώρες πριν, hihixi είπε Μιας και επειδή προσπαθώ να μπαλώσω το παραπάνω αρκετή ώρα χωρίς αποτέλεσμα, είπα να το ξαναγράψω από την αρχή. Υπάρχει κάτι αντίστοιχο του equals πχ για να τσεκάρω αν τα στοιχεία (δύο αριθμοί) ενός int array περιέχονται σε ένα άλλο array; Δεν θέλω να τσεκάρει αν τα array είναι ίδια καθώς αν οι αριθμοί στα δύο array είναι σε διαφορετική θέση, θα μου επιστρέφει 0. Εγώ θέλω πχ στο παρακάτω να μου επιστρέφει 1 και όχι 0. int[] a = {1, 2, 3}; int[] b = {2, 1, 3}; Υπάρχει κάποιος τρόπος να γίνει αυτό; Αυτό πρακτικά είναι πολύ δύσκολο να γίνει με ifs γιατί υπάρχουν πολοί διαφορετικοί συνδυασμοί για 3 στοιχεία υπάρχουν 6 για 4 24 και για 5 120. Μία λύση είναι να το κάνεις με sort αν δηλαδή η τριάδα σου είναι (a,b,c) ελέγεις αν το sorted(a) είναι ίσο με το sorted((a,b,c)). Μία άλλη λύση αν τα στοιχεία σου δεν έχουν διπλές εγγραφές και εφόσον είναι οκ για το πρόγραμμα σου είναι να δουλεύεις με set. Στα σετ δεν παίζει ρόλο η σειρά με την οποία είναι μέσα τα στοιχεία και το (1,2,3) είναι ίσο με καθένα από τους άλλους 5 συνδυασμούς ((1,3,2)(2,1,3)(2,3,1)(3,1,2)(3,2,1)) δεν επιτρέπει όμως κάποιο στοιχείο να είναι διπλό ή περισσότερες φορές και δεν μπορείς φυσικά να κάνεις indexing. Επεξ/σία 5 Ιουνίου 2019 από k33theod
hihixi Δημοσ. 5 Ιουνίου 2019 Μέλος Δημοσ. 5 Ιουνίου 2019 Βρήκα λύση στο παραπάνω, ευχαριστώ! Κάτι άλλο, πως μπορώ να εμφανίζω τις εικόνες στην αρχή για 2 δεύτερα πχ. Αν βάλω μια μέθοδο να κάνει τις αλλαγές και Thread.sleep(x) μου καθυστερεί όλο το JFrame (στο GUI) και όχι μόνο εκεί που την έχω βάλει. Καμιά ιδέα;
solarpower Δημοσ. 21 Ιουνίου 2019 Δημοσ. 21 Ιουνίου 2019 Αν τα πρώτο μέλος του κάθε ζεύγους είναι μοναδικό τότε έχουμε την περίπτωση: Χρήση ενός hashmap. Ελέγχεις με το boolean containsKey(Object key) αν υπάρχει το κλειδί. https://www.javatpoint.com/java-hashmap Αν δεν είναι μοναδικό πχ υπάρχει το [4,4] και το [4,2] τότε χρησιμοποιούμε συνδυασμένο κλειδί βάσει του μέγιστου του δεύτερου μέλους. Έστω το δεύτερο δεν υπάρχει από 20 και πάνω. Ο τύπος είναι Πρώτο*20+Δεύτερο. Έτσι στο [4,4] θα έχουμε το 84 και στο [4,2] θα έχουμε το 82. Πάλι hashmap χρησιμοποιούμε. Αν σώνει και καλά θέλουμε πίνακα τότε αν έχουμε ΜχΝ συνδυασμούς θα φτιάξουμε ένα πίνακα ΜχΝ στοιχείων (στη java είναι Μ πίνακες των Ν στοιχείων) και βάζουμε null όπου το ζεύγος δεν υπάρχει. Τρώει μνήμη αλλά δουλεύει γρήγορα. Το πρόβλημα είναι στο καθάρισμα, θα πρέπει να δίνει κανείς νέο πίνακα Ν στοιχείων σε κάθε στοιχείο του πίνακα Μ στοιχείων. Το hasmap έχει την void clear()
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα