Applet mouseListener problem – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Applet mouseListener problem – Java – Fórum – Programujte.comApplet mouseListener problem – Java – Fórum – Programujte.com

 

johnw
~ Anonymní uživatel
17 příspěvků
11. 12. 2013   #1
-
0
-

Ahojte, mam applet a chcem ziskta polohu suradnic x,y po kliknuti no ked dam vypisat polohu napiklad Ax vypise mi to asi 10 krat za sebou, a pritom vzdy klinem len raz.

zle som vlozil mouseListener, alebo ako to mam riesit?

Dakujem


	public void paint(Graphics g){
	
		g.setColor(Color.black);
		g.drawLine(XMIN, 0, XMIN, HEIGHT);
		g.drawLine(XMAX, 0, XMAX, HEIGHT);
		g.drawLine(0, YMIN, WIDTH, YMIN);
		g.drawLine(0, YMAX, WIDTH, YMAX);
		
		addMouseListener(new MouseAdapter()

		  {// ulozi polohu bodov
			public void mousePressed(MouseEvent e){
				
				pocetbodov++;
				if(pocetbodov==1){
					Ax = e.getX();
					Ay = e.getY();
					System.out.print(Ax+" ");
				}
				
				if(pocetbodov==2){
					Bx = e.getX();
					By = e.getY();
					pocetbodov=0;
					
					
					
					}
				
				}
		});
		
		 }

	
	@SuppressWarnings("deprecation")
	public void main (String[]args){
		Applet applet = new KU3Applet();
		Frame frame = new Frame();
		frame.addWindowFocusListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		frame.add(applet);
		frame.setSize(WIDTH, HEIGHT);
		frame.show();
		
		addMouseListener(new MouseAdapter()

		  
		
		
		
	}


Nahlásit jako SPAM
IP: 195.146.151.–
sleepy
~ Anonymní uživatel
422 příspěvků
11. 12. 2013   #2
-
0
-

   

class Nieco extends Applet implements MouseListener{
	
	@Override
	public void mouseClicked(MouseEvent event) {
		// kod toho co sa ma vykonat
	}
}
Nahlásit jako SPAM
IP: 147.175.177.–
johnw
~ Anonymní uživatel
17 příspěvků
11. 12. 2013   #3
-
0
-

#2 sleepy
ked to spravim tak to nereaguje na klikanie vobec. Ani sa to do tej metody nedsotane. 

Nahlásit jako SPAM
IP: 195.146.151.–
johnw
~ Anonymní uživatel
17 příspěvků
11. 12. 2013   #4
-
0
-

#2 sleepy
radsej pridavam cely Applet, zrejme bude chyba niekde inde.  

import java.applet.Applet;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class KU3Applet extends Applet {
	
	
	public static final int WIDTH = 600;
	public static final int HEIGHT = 300;
	
	public static final int XMIN = WIDTH /3;
	public static final int XMAX = WIDTH/3 *2;
	public static final int YMIN = HEIGHT /3;
	public static final int YMAX = HEIGHT/3*2;
	
	
	
	
	
	
	int pocetbodov = 0;
	int Ax,Ay,Bx,By;
	
	//vykresli mriezky
	public void paint(Graphics g){
	
		g.setColor(Color.black);
		g.drawLine(XMIN, 0, XMIN, HEIGHT);
		g.drawLine(XMAX, 0, XMAX, HEIGHT);
		g.drawLine(0, YMIN, WIDTH, YMIN);
		g.drawLine(0, YMAX, WIDTH, YMAX);
		
		
		
	addMouseListener(new MouseAdapter()

	 {public void mouseClicked(MouseEvent e) {
		 //TODO Auto-generated method stub
		
		pocetbodov++;
		if(pocetbodov==1){
			Ax = e.getX();
			Ay = e.getY();
			System.out.print(Ax+" ");
		}
		
		if(pocetbodov==2){
			Bx = e.getX();
			By = e.getY();
			pocetbodov=0;
			//line(Ax,Ay,Bx,By);
			cohen(Ax,Ay,Bx,By);
			
			}
		
	
				
				
				
				}
		});
		
		 }
	
	
	//vykrsli line
	public void line(int Ax,int Ay,int Bx,int By){
		Graphics g = getGraphics();
		g.drawLine(Ax, Ay, Bx, By);
	}
	//priradi kod
	public int code(int x,int y){
		int kod =0;
		if (x<XMIN) kod++;
		else if(x>XMAX) kod |=2;
		
		if (y < YMIN) kod |=4;
		else if(y > YMAX) kod |=8;
		
		return kod;
	}
	
	public void cohen(int Ax,int Ay,int Bx,int By){
		
		boolean visible = true;
		int Akod = code(Ax,Ay);
		int Bkod = code(Bx,By);
		int codePom;
		int x =0,y=0;
		while(true){
			
			//trivialne riesenia
		  if ((Akod | Bkod) == 0){ visible = true; 
		  System.out.println("je v nutri");			//preskocit orezavanie - cela vnutry
		  break;
		  }
		  else  if((Akod & Bkod) != 0) visible = false; //preskocit orezavanie - cela mimo
		  
		  if(Akod == 0) codePom = Bkod;
          else codePom = Akod;
          if((codePom & 8 ) == 8){
              x = Ax + (Ay - Ax) * (YMIN - Bx) / (By - Bx);
              y = YMIN;
          }
          if((codePom  & 4 ) == 4){
              x = Ax + (Ay - Ax) * (YMAX - Bx) / (By - Bx);
              y = YMAX;
          }
          if((codePom   & 1 ) == 1){
              y = Bx + (By - Bx) * (XMIN - Ax) / (Ay - Ax);
              x = XMIN;
          }
          if((codePom   & 2 ) == 2){
              y = Bx + (By - Bx) * (XMAX - Ax) / (Ay - Ax);
              x = XMAX;
          }
          
          
              Ay = x;
              By = y;
              Bkod = code(Ay, By);
              if ((Bkod & Akod ) ==0){
                  line(Ay, By, this.Ay, this.By);
              }
          }
		 if(visible)line(Ax,Ay,Bx,By);
      } 
        
		  
		 
		  
		
	
	
	
	
	
	
	
		
	
	@SuppressWarnings("deprecation")
	public void main (String[]args){
		
		
		Applet applet = new KU3Applet();
		Frame frame = new Frame();
		frame.addWindowFocusListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		frame.add(applet);
		frame.setSize(WIDTH, HEIGHT);
		frame.show();
		
		
		
		
		
	}
	

Ked stlacim mys, tak to reaguje ako by som ho stlacil 10x na jednom mieste. Dikes za pomoc:)

Nahlásit jako SPAM
IP: 195.146.151.–
johnw
~ Anonymní uživatel
17 příspěvků
11. 12. 2013   #5
-
0
-

pridal som metodu init() a do nej som pridal addMouseListiner(this) , implemetoval som MouseListiner a uz to ide, uz len niektore podmienky musim upravit.

Nahlásit jako SPAM
IP: 195.146.151.–
sleepy
~ Anonymní uživatel
422 příspěvků
11. 12. 2013   #6
-
0
-

Preco mas addMouseListener v painte. V okamziku ako to prekresli prida ti to novy mouseListener. Nemusis pouzivat init staci to napisat v tvojom pripade aj do konstruktoru.

Nahlásit jako SPAM
IP: 147.175.177.–
johnw
~ Anonymní uživatel
17 příspěvků
11. 12. 2013   #7
-
0
-

Ano nevsimol som si to . Dam to do konstruktora. Dikes. 

Problem vyrieseny.

Nahlásit jako SPAM
IP: 195.146.151.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Podobná vlákna

ActionListener+MouseListener — založil unik421

Java applet — založil Leito

Nefunkční applet — založil Rezy

Applet a JMF — založil Micho

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý