Pereiti prie turinio

MouseEvent pelės x,y koordinačių gavimas{JAVA}


Rekomenduojami pranešimai

Vėl iškilo problema šį kart daug paprastesnė, bet aš jau pavargau galvoti(ko gero labiau žinių trūksta).

 

Taigi turiu tokį kodą:

	import acm.program.*;
import acm.graphics.*;
import java.awt.event.*;

public class test extends GraphicsProgram {
	public void run() {
		label = new GLabel("");
		label.setFont("Times New Roman-36");
		add(label, 50, 50);

		addMouseListeners(); 
		}

	public void mouseMoved(MouseEvent e) {
		label.setLabel("Mouse: (" + e.getX() + ", " + e.getY() + ")");
		}

	private GLabel label;


}

Tai pelės koordinačių parodymas ekrane.

Aš noriu, kad tai veiktu šioje formoje.

 

	import acm.program.*;
import acm.graphics.*;
import java.awt.event.*;

public class test extends GraphicsProgram {
	public void run() {
		label = new GLabel("");
		label.setFont("Times New Roman-36");
		add(label, 50, 50);

		addMouseListeners(); 

	label.setLabel("Mouse: (" + x + ", " + y + ")");

	}
	public void mouseMoved(MouseEvent e) { 
		x = e.getX();
		y = e.getY();
		}

	private GLabel label;
	private int x;
	private int y;

}

Tiksliau aš noriu koordinačių reikšmę išnešti iš objekto.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kad kodą davei tai 0 naudos žinok :D truputį pagalvok ir iš naujo suformuluok klausimą, nes aš tai nieko nesupratau :D ir 1 dalykas tai pažiūrėk kaip reikia įvardinti klases, nes jai mokiniesi tai gausi nuo dėstytojo lazdų :D Tavo bėda (nors tiksliai nežinau kokia ji :)) greičiausiai galėtų išspręsti java.awt pakete esanti klasė MouseInfo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip suprantu jis nori is MouseEvent e objekto gauti peles kordinaciu reiksmes ir priskirti kintamiesiems x ir y: "aš noriu koordinačių reikšmę išnešti iš objekto". O kad tas reiksmes rodytų perkelk "label.setLabel("Mouse: (" + x + ", " + y + ")");" eilutę is run() į mouseMoved(mouseEvent e) funkciją.

 

 

public void mouseMoved(MouseEvent e) {

x = e.getX();

y = e.getY();

label.setLabel("Mouse: (" + x + ", " + y + ")");

}

 

Aš tai taip suprantų jo problemą.:)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kad kodą davei tai 0 naudos žinok :D truputį pagalvok ir iš naujo suformuluok klausimą, nes aš tai nieko nesupratau :D ir 1 dalykas tai pažiūrėk kaip reikia įvardinti klases, nes jai mokiniesi tai gausi nuo dėstytojo lazdų :D Tavo bėda (nors tiksliai nežinau kokia ji :)) greičiausiai galėtų išspręsti java.awt pakete esanti klasė MouseInfo.

Manau duotas kodas parodo ko man reikia. Pripažįstu formuluoti klausimų nemoku, bet pakartosiu. Pirmas kodas yra veikiantis. Jis parodo pelės pozicijos koordinates, bet manęs tai netenkina aš noriu kad kintamieji x,y nebūtų lokalus, kad rodytu pelės koordinates pvz run() funkcijoje. Antras kodas tai yra kaip aš viska įsivaizduoju.

 

P.S. Čia yra tik pvz. todėl nesivarginau dėl klasės pavadinimo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Manau duotas kodas parodo ko man reikia. Pripažįstu formuluoti klausimų nemoku, bet pakartosiu. Pirmas kodas yra veikiantis. Jis parodo pelės pozicijos koordinates, bet manęs tai netenkina aš noriu kad kintamieji x,y nebūtų lokalus, kad rodytu pelės koordinates pvz run() funkcijoje. Antras kodas tai yra kaip aš viska įsivaizduoju.

 

P.S. Čia yra tik pvz. todėl nesivarginau dėl klasės pavadinimo.

 

Tu pirma išsiaiškink kokį vaidmenį run() funkcija atlieka GraphicsProgram klasėje. Sprendžiant iš to, kad tu viską iniciavai run() funkcijoje, tai šita funkcija programoje vykdoma tik vieną kartą, kai programa yra paleidžiama. Todėl tau ir nerodo pelės koordinačių.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tu pirma išsiaiškink kokį vaidmenį run() funkcija atlieka GraphicsProgram klasėje. Sprendžiant iš to, kad tu viską iniciavai run() funkcijoje, tai šita funkcija programoje vykdoma tik vieną kartą, kai programa yra paleidžiama. Todėl tau ir nerodo pelės koordinačių.

 

Ačiū už atsakymą. Esu naujoka JAVA pasaulyje tai ir kyla tokios problemos.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...