Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
3 λεπτά πριν, hihixi είπε

Γνωρίζω πως βάζω κουμπιά σε JButton. 

Το video το είδες; Δες το και προσάρμοσέ το στα μέτρα σου. Από 'κει και πέρα η λογική είναι εύκολη. Αν έχουν το ίδιο id όπως σου γράφουν), στο δεύτερο άνοιγμα, έχουμε match.

  • Απαντ. 38
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

gogogogo προχώρα και εδώ είμαστε

Θα σε βοηθήσουμε και ποιο εύκολα απο το να λουπάρουμε το i και το j για να βρούμε που στο καλό είναι η εικόνα :D

Δημοσ. (επεξεργασμένο)

Έστω

    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

Επεξ/σία από hihixi
Δημοσ.
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

Δημοσ. (επεξεργασμένο)
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);
    }
}

 

 

Επεξ/σία από hihixi
Δημοσ.
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 δεν θα είχες πρόβλημα.

Αν και με μπερδεύουν λίγο τα ονόματα που διάλεξες :D αν θέλεις να παίξει θα μεταφέρεις τους 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 μπαλαντέρ για να γράφω γρήγορα κάτι και να το τεστάρω :D

Δημοσ. (επεξεργασμένο)
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. 

 

Επεξ/σία από k33theod
Δημοσ.

Βρήκα λύση στο παραπάνω, ευχαριστώ!

Κάτι άλλο, πως μπορώ να εμφανίζω τις εικόνες στην αρχή για 2 δεύτερα πχ.
Αν βάλω μια μέθοδο να κάνει τις αλλαγές και Thread.sleep(x) μου καθυστερεί όλο το JFrame (στο GUI) και όχι μόνο εκεί που την έχω βάλει. Καμιά ιδέα;

  • 3 εβδομάδες αργότερα...
Δημοσ.

Αν τα πρώτο μέλος του  κάθε ζεύγους είναι μοναδικό τότε έχουμε την περίπτωση:

Χρήση ενός 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()

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...