Portal > Foren > Java > Desktop-Applikationen und Grafik > tooltip auf 2D objekt
Antwort
 
Themen-Optionen
Alt 17.11.2005, 17:06 Nach oben    #1
sheini
Gast
 
Beiträge: n/a
Standard tooltip auf 2D objekt

hi,

ich erzeuge ein 2D Obj. und stelle darauf eine mathem. Funktionskurve da. jetzt möchte ich, dass wenn man mit der Maus über die Linie fährt in einer art tooltip die genauen errechneten werte für die stelle angezeigt werden, auf der die maus grad ist. (also quasi die manipulierte x und y koordinate)
habe das schon mit tooltip probiert, aber das funktioniert wohl nicht mit 2D objekten.
jemand ne idee wie das trotzdem geht???
:confused:
gruß sheini

PHP-Code:


class AusgangsPanel extends JPanel

{

Cursor cursor;

MyMenuItem mmi;

MyPopupMenu mpm;

float U_Norm 2.5f;

float U_test=2.4f;

float t_Norm 2.3f;

int x_koord_1=30;

int x_koord_2;

int y_koord_1=340;

int y_koord_2;

double y_wert;

int anfang=0;



public 
AusgangsPanel()

{

setPreferredSize(new Dimension(250,200));

cursor = new Cursor(Cursor.CROSSHAIR_CURSOR);

setCursor(cursor);

mmi = new MyMenuItem();

mpm = new MyPopupMenu();

addMouseListener( new MyMouseListener());

}



class 
MyMenuItem extends JMenuItem

{

public 
MyMenuItem()

{

setOpaque(false);

setBorderPainted(false);

}



protected 
void paintComponent(Graphics g)

{

g.setColor(new Color(220220220));

g.fillRoundRect(0040202020);

g.setColor(Color.black);



}





class 
MyPopupMenu extends JPopupMenu

{

public 
MyPopupMenu()

{

setPreferredSize(new Dimension(42,25));

setBorderPainted(false);

}



protected 
void paintComponent(Graphics g)

{

g.setColor(new Color(240,240,240));

g.fillRect(0,0,42,25); 

}



public 
boolean contains(int xint y)

{

return 
false

}

}



class 
MyMouseListener extends MouseAdapter

{

public 
void mouseEntered(MouseEvent me)

{

/*if(bi.getRGB(me.getX(),me.getY())==0x000080)

{

koordinaten_angabe(me.getX(),me.getY());

}*/ 

int x=me.getX();

int y=me.getY();

gfat.setColor(new Color(255,255,255));

gfat.fillRect(x+3,y+2,x+50,y+50); 

}

}







public 
void paint(Graphics g)

{

int w getWidth();

int h getHeight();

String a;



g.setColor(new Color(240240240));

g.fillRect(0,0,w,h);



// Linien-staerke-dick------------------------

BasicStroke pen_1 = new BasicStroke(2.0fBasicStroke.JOIN_ROUNDBasicStroke.JOIN_ROUND);

gfat.setStroke(pen_1);

//-----------------------------------------



//Linien-staerke-duenn-------------------

BasicStroke pen_2 = new BasicStroke(1.0fBasicStroke.CAP_ROUNDBasicStroke.JOIN_ROUND);

gsmall.setStroke(pen_2);

//-----------------------------------------



gbi.setStroke(pen_2);



//Rahmen-mit-Text---------------------------

g.setColor(Color.LIGHT_GRAY);

g.drawLine(3575); // oben waagrecht links von schrift

g.drawLine(100535);//oben waagrecht rechts von schrift

g.drawLine(3533); // rechts senkrecht

g.drawLine(3333); // unten waagrecht

g.drawLine(3335); //links senkrecht

g.setColor(Color.gray);

g.setFont(new Font("Dialog"Font.BOLD12));

g.drawString("Ausgangssignal"1010);

//Ende--------------------------------------



//Loeschen----------------------------------

gbi.setColor(new Color(240240240));

gbi.fillRect(00wh); 

//Ende--------------------------------------



//Koordinatensystem-----------

gbi.setColor(Color.black);

gbi.drawLine(30h-303030);// senkrechte achse

gbi.drawLine(20340w-20340); // waagrechte Achsen

gbi.drawLine(w-20340,w-30,335); // pfeilspitze

gbi.drawLine(w-20,340,w-30,345); // von waagrechteachse

gbi.drawLine(3030,35,40); // pfeilspitze

gbi.drawLine(30,30,25,40); // von senkrechteachse



//Achsenbeschriftung----------------------------- 

gbi.setFont(new Font("SansSerif",Font.PLAIN13));

gbi.drawString("t",w-15,345); //Achsenbeschriftung senkrechte A.

gbi.drawString("U (t)/V",10 ,25); //Achsenbeschriftung senkrechte A.

gbi.setFont(new Font("SansSerif",Font.PLAIN11));

gbi.drawString("a",20,27);



gfat.setStroke(pen_1);





gbi.setFont(new Font("SansSerif",Font.BOLD10));

gbi.setColor(Color.black);



//---Achsenbeschriftung ---

//-----x- Achse

for (int i=0i<=390i+=23)

{

gbi.drawLine(30+i34430+i336);

aString.valueOf((int)(2*i/t_Norm));

gbi.drawString(a,(25)+i,355); 

}



gbi.setFont(new Font("SansSerif",Font.CENTER_BASELINE10));



//-----y- Achse

for (int i=0i<=280i+=25)

{

gbi.drawLine(26340-i34340-i);

aString.valueOf((int)(i/U_Norm));

gbi.drawString(a,10,(340)-i); 

}



/////////////////// Kurve zeichnen





final int N=390;

int y0=340;

int xa=30;

int []x=new int [N];

int []y=new int [N];





for (
int i =0;i<N;i++)

{

berechnung.werteberechnung(i);

y_wert=(double)(berechnung.getua_n()*U_test*50);

x[i]=xa+(i);

y[i]=(int)(y0-y_wert);

}

gfat.setPaint(new Color(0,0,128));

gfat.setStroke(pen_1);

gfat.drawPolyline(x,y,N);



g.clipRect(10,12,w-14,h-15);

g.drawImage(bi00null);

//Paint Ende 

}//---AusgangsPaneDE----

}//AusgangsPanel() ENDE



class AusgangsPanel extends JPanel

{

Cursor cursor;

MyMenuItem mmi;

MyPopupMenu mpm;

float U_Norm 2.5f;

float U_test=2.4f;

float t_Norm 2.3f;

int x_koord_1=30;

int x_koord_2;

int y_koord_1=340;

int y_koord_2;

double y_wert;

int anfang=0;



public 
AusgangsPanel()

{

setPreferredSize(new Dimension(250,200));

cursor = new Cursor(Cursor.CROSSHAIR_CURSOR);

setCursor(cursor);

mmi = new MyMenuItem();

mpm = new MyPopupMenu();

addMouseListener( new MyMouseListener());

}



class 
MyMenuItem extends JMenuItem

{

public 
MyMenuItem()

{

setOpaque(false);

setBorderPainted(false);

}



protected 
void paintComponent(Graphics g)

{

g.setColor(new Color(220220220));

g.fillRoundRect(0040202020);

g.setColor(Color.black);



}





class 
MyPopupMenu extends JPopupMenu

{

public 
MyPopupMenu()

{

setPreferredSize(new Dimension(42,25));

setBorderPainted(false);

}



protected 
void paintComponent(Graphics g)

{

g.setColor(new Color(240,240,240));

g.fillRect(0,0,42,25); 

}



public 
boolean contains(int xint y)

{

return 
false

}

}



class 
MyMouseListener extends MouseAdapter

{

public 
void mouseEntered(MouseEvent me)

{

/*if(bi.getRGB(me.getX(),me.getY())==0x000080)

{

koordinaten_angabe(me.getX(),me.getY());

}*/ 

int x=me.getX();

int y=me.getY();

gfat.setColor(new Color(255,255,255));

gfat.fillRect(x+3,y+2,x+50,y+50); 

}

}







public 
void paint(Graphics g)

{

int w getWidth();

int h getHeight();

String a;



g.setColor(new Color(240240240));

g.fillRect(0,0,w,h);



// Linien-staerke-dick------------------------

BasicStroke pen_1 = new BasicStroke(2.0fBasicStroke.JOIN_ROUNDBasicStroke.JOIN_ROUND);

gfat.setStroke(pen_1);

//-----------------------------------------



//Linien-staerke-duenn-------------------

BasicStroke pen_2 = new BasicStroke(1.0fBasicStroke.CAP_ROUNDBasicStroke.JOIN_ROUND);

gsmall.setStroke(pen_2);

//-----------------------------------------



gbi.setStroke(pen_2);



//Rahmen-mit-Text---------------------------

g.setColor(Color.LIGHT_GRAY);

g.drawLine(3575); // oben waagrecht links von schrift

g.drawLine(100535);//oben waagrecht rechts von schrift

g.drawLine(3533); // rechts senkrecht

g.drawLine(3333); // unten waagrecht

g.drawLine(3335); //links senkrecht

g.setColor(Color.gray);

g.setFont(new Font("Dialog"Font.BOLD12));

g.drawString("Ausgangssignal"1010);

//Ende--------------------------------------



//Loeschen----------------------------------

gbi.setColor(new Color(240240240));

gbi.fillRect(00wh); 

//Ende--------------------------------------



//Koordinatensystem-----------

gbi.setColor(Color.black);

gbi.drawLine(30h-303030);// senkrechte achse

gbi.drawLine(20340w-20340); // waagrechte Achsen

gbi.drawLine(w-20340,w-30,335); // pfeilspitze

gbi.drawLine(w-20,340,w-30,345); // von waagrechteachse

gbi.drawLine(3030,35,40); // pfeilspitze

gbi.drawLine(30,30,25,40); // von senkrechteachse



//Achsenbeschriftung----------------------------- 

gbi.setFont(new Font("SansSerif",Font.PLAIN13));

gbi.drawString("t",w-15,345); //Achsenbeschriftung senkrechte A.

gbi.drawString("U (t)/V",10 ,25); //Achsenbeschriftung senkrechte A.

gbi.setFont(new Font("SansSerif",Font.PLAIN11));

gbi.drawString("a",20,27);



gfat.setStroke(pen_1);





gbi.setFont(new Font("SansSerif",Font.BOLD10));

gbi.setColor(Color.black);



//---Achsenbeschriftung ---

//-----x- Achse

for (int i=0i<=390i+=23)

{

gbi.drawLine(30+i34430+i336);

aString.valueOf((int)(2*i/t_Norm));

gbi.drawString(a,(25)+i,355); 

}



gbi.setFont(new Font("SansSerif",Font.CENTER_BASELINE10));



//-----y- Achse

for (int i=0i<=280i+=25)

{

gbi.drawLine(26340-i34340-i);

aString.valueOf((int)(i/U_Norm));

gbi.drawString(a,10,(340)-i); 

}



/////////////////// Kurve zeichnen





final int N=390;

int y0=340;

int xa=30;

int []x=new int [N];

int []y=new int [N];





for (
int i =0;i<N;i++)

{

berechnung.werteberechnung(i);

y_wert=(double)(berechnung.getua_n()*U_test*50);

x[i]=xa+(i);

y[i]=(int)(y0-y_wert);

}

gfat.setPaint(new Color(0,0,128));

gfat.setStroke(pen_1);

gfat.drawPolyline(x,y,N);



g.clipRect(10,12,w-14,h-15);

g.drawImage(bi00null);

//Paint Ende 

}//---AusgangsPaneDE----

}//AusgangsPanel() ENDE 
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.11.2005, 10:25 Nach oben    #2
Benutzer
 
Registriert seit: 15.11.2005
Beiträge: 75
Standard

Der gepostete Code ist irgendwie durcheinander geraten; so kommt z.B. die Zeile
Code:
class AusgangsPanel extends JPanel
doppelt vor. Auch die Formatierung ist eher ungewöhnlich - ist da beim "Cut&Paste" etwas schiefgegangen?

Murray ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
Auf welcher Verbindungsgeraden (der Eckpunkte) eines Polygons liegt ein Punkt Ben Allgemeine Java-Programmierung 3 17.03.2006 09:22
[PHP] Aktuell gespielten Titel von XMMS auf einer Webseite in einer Grafik anzeigen Corvin Tutorials 0 28.11.2005 16:26
Login auf mehreren Domains Homepagespeicher PHP-Programmierung 17 21.08.2005 16:54
Auf ein Canvas Objekt per Mouseevents Linien Zeichnen schärple Desktop-Applikationen und Grafik 6 12.06.2004 17:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:54 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44