GUI mit Bildern

Status
Nicht offen für weitere Antworten.

mischer

Aktives Mitglied
Tach,

ich möchte ein GUI erstellen, welches aus einem oder mehreren Bildern besteht. Aus diesen Bilder sollen bestimmte Bereiche anklickbar sein, also als Quasi-Buttons fungieren. Aber eben nur gewisse Bereiche.

Ich würde das Ganze gerne so realisieren, dass ich ein Image habe, das dargestellt wird, und ein zweites Image, in dem die klickbaren Bereiche z.B. als schwarze Flächen auf weißen Hintergrund definiert sind. Die JComponent soll nun anhand des zweiten Images entscheiden, welche Klicks ausgewertet werden (nämlich nur die auf den definierten Stellen) und nach Möglichkeit an diesen Stellen auch die Hand, anstatt des Pfeils, darstellen.

Gibt es dazu bereits fertige Lösungen in der Java API, oder darf ich das alles per pedes machen?

Oder kennt vielleicht jemand ein gescheites Tutorial dazu?

Vielen Dank für Eure Mühe.

Gruß
Mischer
 
mischer hat gesagt.:
Gibt es dazu bereits fertige Lösungen in der Java API, oder darf ich das alles per pedes machen?

Weder noch. Wir tendieren dazu, die Finger zu benutzen 😉

Wenn deine anklickbaren Bereiche geometrisch einfach beschrieben werden können, kannst du statt eines Images das Ganze auch in eier Collection abspeichern, in der du Instanzen ablegst, die du aus eigenen Klassen als Repräsentationen für Kreis, Rechteck, etc. erzeugst. Denen kannste (über ein Interface) eine Methode verpassen die prüft, ob ein Punkt innerhalb der gemoetrischen Figur liegt.

Mit dem zweiten Image gehts natürlich auch. Nur dass es Schwachsinn wäre das tatsächlich anzuzeigen. Du brauchst es ja nur in derselben Größe wie dein Originalbild und nur zum Nachschlagen. Evtl. würde es sich auch anbieten das Ding nur als persistentes Format zu benutzen, anstatt den Lookup darüber zu machen. Ich steck nicht so tief in der "D-API, daher müsstest du mal schauen, wie es mit dem Speicherverbrauch von Bildern aussieht, ob ein monochromes Bild auch wirklich weniger Platz verbraucht, oder ob du es besser einfach einlist und daraus z.B. ein Array aus Arrays erstellst (passenderweise vielleicht als eigene Klasse), in der du Booleans ablegst.

Wie dus genau machst, hängt auch davon ab welche Dimensionen die Bilder haben können sollen. Um ein paar zehn KB oder so würd ich mir keinen Kopf machen und den Lookup direkt übers Image machen...
 
Danke,

das ist mir soweit schon klar. Ich müsste dazu aber eben einiges zu Fuß machen: Einen MouseListener, der x und y abfragt und dann auf dem zweiten Image guckt, ob der Klickt ausgewertet wird. Einen MouseMotionListener, der überprüft, ob an der aktuellen Stelle geklickt werden darf oder nicht und entsprechend die Hand oder den Pfeil darstellt, usw.

Ich wollte eben nur nicht, nachdem ich alles selbst geschrieben habe, feststellen, dass es das ganze schon fertig gibt.

@AlArenal: Die Idee mit den Fingern ist mir auch schon gekommen :wink:, ich erfinde das Rad eben nur nicht gerne zum 35467. Mal, sondern versuche bestehenden Code zu verwenden, sofern vorhanden.

@AlArenal: Wer sagte was davon, dass das zweite Image dargestellt werden soll?

Na ich werd mich dann wohl mal an die Arbeit machen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben