Permalänk

Java problem

Hej!
Jag har nu suttit och lekt lite med MouseMotionListener och har stött på ett konstigt problem. När jag drar runt muspekaren så följer texten med, jag vet vad som skapar problemet, det är för att jag har två metoder som heter getX och getY och dessa finns med i MouseMotionListener klassen

Men till frågan varför gör den så här? Jag anropar inte ens mina egna getX och getY bara de vanliga.

Main klassen: http://pastebin.com/yyG9Hvf8
Problem klassen: http://pastebin.com/U2U5Zvg2

För er som undrar varför jag har ärvt av JLabel så är det för att Mr.1Buying, som jag lär mig av, hade med det i ett exempel.

Permalänk

Det har att göra med att din getX och getY faktiskt skriver över en sak i JLabel (överlagrar).

Det som händer är alltså att din JFrame frågar dit plopp-objekt om var den ska ligga, det gör den genom att anropa getX och getY. Svaret den får kommer alltså placera ut ditt plopp-objekt på den x och y koordinaten.

Ifall du skriver ditt program i eclipse eller liknande IDE så kommer du oftast få upp en grön pil eller någon annan sorts markör som berättar för dig att du faktiskt överlagrar en annan sak, i detta fall är det JComponents getX och getY som den överlagrar.

Exempelvis kunde din plopp sett ut såhär:

public class plopp extends JLabel {
public plopp() {
setText("plopp är på " + this.getX() + " och " + this.getY());
}
}

this kommer peka på ditt nyss skapade object och getX samt getY är metoder som finns på det där objektet för att den ärver av JLabel.

Visa signatur

Avatarkreds till: http://imgur.com/HOxIL
Alakai säger: Ryssen skrattar. Norrland hembränner på uppdrag av regeringen. Sälar dör i blyförgiftning, fulla och glada. Förvirringen är total. Kungen är nöjd.

Permalänk
Skrivet av Mikael_Berglund:

Det har att göra med att din getX och getY faktiskt skriver över en sak i JLabel (överlagrar).

Det som händer är alltså att din JFrame frågar dit plopp-objekt om var den ska ligga, det gör den genom att anropa getX och getY. Svaret den får kommer alltså placera ut ditt plopp-objekt på den x och y koordinaten.

Ifall du skriver ditt program i eclipse eller liknande IDE så kommer du oftast få upp en grön pil eller någon annan sorts markör som berättar för dig att du faktiskt överlagrar en annan sak, i detta fall är det JComponents getX och getY som den överlagrar.

Exempelvis kunde din plopp sett ut såhär:

public class plopp extends JLabel {
public plopp() {
setText("plopp är på " + this.getX() + " och " + this.getY());
}
}

this kommer peka på ditt nyss skapade object och getX samt getY är metoder som finns på det där objektet för att den ärver av JLabel.

Dold text

Tack! får jag fråga vart du har lärt dig java, har du kollat på internet, köpt en bok eller har du gått i någon skola?

Permalänk
Skrivet av oliver0187:
Dold text

Tack! får jag fråga vart du har lärt dig java, har du kollat på internet, köpt en bok eller har du gått i någon skola?

No problem. Just språket Java lärde jag mig grunderna i skolan, och sedan har man snubblat över det och andra liknande språk med åren.

Visa signatur

Avatarkreds till: http://imgur.com/HOxIL
Alakai säger: Ryssen skrattar. Norrland hembränner på uppdrag av regeringen. Sälar dör i blyförgiftning, fulla och glada. Förvirringen är total. Kungen är nöjd.