Java + SWT

Alles Wissenswerte über Skripte, Browser, Makros, PhP, HTML...

Moderatoren: Moderatoren, Redakteure

Benutzeravatar
seph`
Beiträge: 6865
Registriert: 21.10.2009 12:55
Persönliche Nachricht:

Java + SWT

Beitrag von seph` »

Hallo Leute,

ich hab hier ein kleines, aber nerviges Problem mit Java.
Und zwar muss/will/soll ich für eine Applikation "klickbare" Bereiche auf einem Bild machen.
Meine erste Idee war es, ein Canvas zu erstellen, und wenn man mit der Maus drüberfährt, dann "leuchtet" nur der Rahmen des Canvas auf (solange, bis man den Canvas verlässt).

Leider bekomm ich das irgendwie nicht gebacken, es würde mir ja auch schon ein Toggle zwischen unsichtbar<->sichtbar(Bild, andere Hintergrundfarbe, etc...) reichen!

Kurzer Codeschnippsel:

Code: Alles auswählen

final Canvas canvas = new Canvas(this, SWT.TRANSPARENT); //um transparent zu starten
.
.
.
//event
canvas.addMouseTrackListener(new MouseTrackListener()
{
    public void mouseEnter(MouseEvent e) 
    {
        canvas.setBackground(getDisplay().getSystemColor(SWT.COLOR_RED));
        System.out.println("enter");
    }
    public void mouseExit(MouseEvent e) 
    {
        canvas.setBackground(getDisplay().getSystemColor(SWT.TRANSPARENT));
        System.out.println("exit");
    }
});
Wie manche hier sehen werden, sollte das alles mit SWT umsetzbar sein (was ich langsam aber sicher bezweifle:\).
Der Event wird übrigens ausgeführt (dafür die System.out...), wenn ich über das transparente Canvas drüberfahr (ich weiß ja ca. wo ich es positioniert habe), die Hintergrundfarbe ändert sich aber nicht.

Ich wäre euch sehr dankbar für einen Tipp, oder auch anderen Lösungsvorschlägen (muss ja nicht ein Canvas sein, bin leider nicht n SWT-Profi).



\\jetzt aber, blöde Code-Tags :P
Benutzeravatar
JesusOfCool
Beiträge: 34685
Registriert: 27.11.2009 09:55
Persönliche Nachricht:

Beitrag von JesusOfCool »

vllt gibts nen validate, update oder redraw funktion oder irgendwie sowas das du noch ausführen musst. GUI zeugs ist da manchmal recht trickreich.

wenn du die klicks so bereits erhältst find ich die idee damit eigentlich recht gelungen, also bleib doch dabei.
Benutzeravatar
seph`
Beiträge: 6865
Registriert: 21.10.2009 12:55
Persönliche Nachricht:

Beitrag von seph` »

ja, auf redraw() bin ich auch grad gekommen, leider tut es das nicht...
Benutzeravatar
JesusOfCool
Beiträge: 34685
Registriert: 27.11.2009 09:55
Persönliche Nachricht:

Beitrag von JesusOfCool »

vielleicht musst du es ja auch zusätzlich nochmal intransparent machen. zur not probier direkt zahlenwerte aus.