Bilder wechseln

K

kiesa747

Gast
Hey,

ich habe 3 Bilder (pictureA, pictureB,pictureC) (urls) und einen popup menu , ich will jetzt zwischen den bildern switchen zb. von pictureA nach pictureB oder von pictureB nach pictureC . vom pictureA nach pictureC hin und hier switchen klapt sehr gut aber wenn ich noch zum pictureB switchen will sind auf einmal 2 bilder zu sehen (A und B ,was ich nicht will)

Java:
        newItem.addItem("pictureA", new Command(){
        		public void menuSelected(MenuItem selectedItem) {
                    if(!pictureA.equals(pictureB)){
                    	window.replaceComponent(pictureB,pictureA);
                    }
        	}
        });
        newItem.addItem("pictureB", new Command(){
            	public void menuSelected(MenuItem selectedItem) {
                    if(!pictureB.equals(pictureA)){
                    	window.replaceComponent(pictureA,pictureB);
                    }
    	}
    });
        newItem.addItem("pictureC", new Command(){
            	public void menuSelected(MenuItem selectedItem) {
                    if(!pictureC.equals(pictureA)){
                    	window.replaceComponent(pictureA,pictureC);
                    }
            	}
    });

hat einer eine Idee wie ich die verzweigungen optimieren soll ?


Mfg

kiesa747
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
füge z.B. alle drei Komponenten in ein Array und rufe remove für alle drei auf (können natürlich auch drei normale Befehle sein),
dann sind alle weg, dann füge das eigene ein, je nach Command,

generell bietet sich an, hier eine Untermethode zu schreiben und nur
> createCommand(newItem, "A");
> createCommand(newItem, "B");
> createCommand(newItem, "C");
aufzurufen oder ähnlich,
der restlichen Code inklusive Command-Definition kann immer derselbe sein, nur von wenigen Parametern abhängig,
überlege ob du dahin einen Weg siehst, das wäre schon ein zentraler Schritt zu echter Programmierfähigkeit

kein doppelter Code, ein echter Grundsatz
 
B

bygones

Gast
keine anonyme klasse nehmen, sondern eine implementierung
Java:
newItem.addItem("pictureA", new PicSwitchCommand(pictureA, pictureB));
bzw dann fuer die anderen commands ebenso.

Die Klasse implementiert die menuSelected methode mit den entsprechenden Bildern
 

kiesa747

Mitglied
füge z.B. alle drei Komponenten in ein Array und rufe remove für alle drei auf (können natürlich auch drei normale Befehle sein),
dann sind alle weg, dann füge das eigene ein, je nach Command,

generell bietet sich an, hier eine Untermethode zu schreiben und nur
> createCommand(newItem, "A");
> createCommand(newItem, "B");
> createCommand(newItem, "C");
aufzurufen oder ähnlich,
der restlichen Code inklusive Command-Definition kann immer derselbe sein, nur von wenigen Parametern abhängig,
überlege ob du dahin einen Weg siehst, das wäre schon ein zentraler Schritt zu echter Programmierfähigkeit

kein doppelter Code, ein echter Grundsatz

Mein erster versuch war so ähnlich , ich habe eine methode erstellt die die alten Component entfernt :

nichts Besonderes
Java:
     public void removeOldComponents(){
    	
    	window.removeComponent(A);
    	window.removeComponent(B);
    	window.removeComponent(C);
    }
habe die methode dann ins menu eingebaut und am ende das entsprechende Bild hinzugefügt
Java:
window.addComponent(ausgewähltes Bild);

das problem dabei ist das das Bild dann am ende meiner Componentenliste hinzugefügt wird (hab noch ein button ein slider und ein paar andere sachen ) das bild wird dann unter dem menu und den anderen Componenten erzeugt (was ich vermeiden will).
 
S

SlaterB

Gast
dann füge an diese Stelle ein Panel als Platzhalter ein und remove alles in diesem Panel (leicht removeAll()) + adde das neue Bild,
evtl. Probleme mit zusätzlichen Millimetern Rand

noch ne Variante: prüfe der Reihe nach durch, welches Bild enthalten ist, gibt doch bestimmt contains usw.,
ansonsten vielleicht extern irgendwo ablegen, wo alle drei Commands vorbeikommen,
merke oder bestimme jedenfalls das vorhandere Bild, führe das replaceComponent() mit dieser Variablen aus
 

kiesa747

Mitglied
komm einfach nicht mehr weiter :(

habs so weit gebracht das ich zwischen pics hin und hier wechseln kann die bleiben auch da wo sie seien müssen aber wenn ich ein zweites mal aufs bild klicke wandert der nach unten :/

mit nem panel kann ich nichts machen weil die bilder von nem servlet an einem browser geschickt werden und via Portlet angezeigt verden
 
S

SlaterB

Gast
meine zweite Variante müsste doch so gut gehen wie früher zwischen zwei Bildern zu wechseln, falls das je ging,
allgemein klingt das ja bisschen abenteuerlich,

Problem mit dem Panel verstehe ich nicht wirklich, in welche Komponente fügst du denn bisher ein,
gibt es nur eine auf oberster Ebene, keine Unterstrukturierung?
ob nun Panel oder was anderes ist ja herzlich egal, falls es überhaupt irgendwas gibt

was genau verwendest du aktuell eigentlich bei dem 'zweites mal aufs bild klicke wandert der nach unten' auftritt?
wahrscheinlich kann ich dazu aber nichts sagen wenn es um Portlet geht, nicht auf weitere Antwort von mir warten,
ändere jetzt noch Titel, und mit Java-Basics hat das endgültig nichts mehr zu tun, verschoben..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Zip4J Zip erstellen und gespeichert URI Bilder einfügen Android & Cross-Platform Mobile Apps 3
W Bilder und Videos anzeigen lassen mit Zoom- und Loop-Funktion Android & Cross-Platform Mobile Apps 5
J ImageView: Bilder in niedriger Grafik anzeigen lassen Android & Cross-Platform Mobile Apps 2
L Android Android Addressbuch Kontakte und Bilder auslesen? Android & Cross-Platform Mobile Apps 1
S Bilder mit fester grösse für verschiedene Android Endgeräte Android & Cross-Platform Mobile Apps 2
L Android Emulator verwendet Bilder der falschen Größe Android & Cross-Platform Mobile Apps 3
S Android Zugriff auf Bilder im Telefonspeicher + Galeriedarstellung Android & Cross-Platform Mobile Apps 5
G Bilder in drawable Ordner Android & Cross-Platform Mobile Apps 11
D Android Ist es überhaupt notwendig, die Bilder runterzuskalieren? Android & Cross-Platform Mobile Apps 7
D TabHost mit Tabs verschieben und Bilder einsetzen Android & Cross-Platform Mobile Apps 7
F Bilder in Java importieren (Fehler?) Android & Cross-Platform Mobile Apps 5
G Bilder als "Video" anzeigen Android & Cross-Platform Mobile Apps 3
M Bilder nacheinander anzeigen Android & Cross-Platform Mobile Apps 6
W aus Fragmente in andere Klasse wechseln mit Button Android & Cross-Platform Mobile Apps 3
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
M Activity wechseln aus List View mit Android & Cross-Platform Mobile Apps 2
S Zur Homeansicht wechseln Android & Cross-Platform Mobile Apps 6
G Displayable wechseln. Mal gehts, mal nicht. Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben