Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [java] getClickCount()

  1. #1

    [java] getClickCount()

    Scusate la mia banale domanda, ma il metodo getClickCount() non dovrebbe restituirmi il numero dei click che si fanno sul mouse? perché io l'ho utilizzato per aprire un JDialog al click del mouse ma me ne apre 3 consecutivamente? bo?
    My SO:WinXP pro/Linux Debian/Gentoo 2006.0

  2. #2
    Il metodo getClickCount() conta il numero di pressioni e rilasci del tastino del mouse...

  3. #3
    scusami ma
    codice:
    public void mouseClicked(MouseEvent e) { 
        int x=e.getX();
        int y=e.getY(); //verifico coordinate mouse
        if (trova(x,y)>=1 &&  (e.getClickCount() >= 2) {
    	ordina = new OrdinaPosti();
    	ordina.show(); //creo il jdialog e lo visualizzo
        } 
    }
    allora non dovrebbe essere corretto cosí? perché me ne apre tre di ordina?
    My SO:WinXP pro/Linux Debian/Gentoo 2006.0

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    posta il codice dell'oggetto a ciu hai aggiunto il MouseListener

  5. #5
    codice:
    class pannello1 extends JPanel implements MouseMotionListener {
       public void paintComponent(Graphics g){
       super.paintComponent(g);
       g.setFont(Arial_font_plain_14);
       g.setColor(Color.black);
       g.drawString(s1,10,20);
       g.drawString(s2,10,35);
       g.setColor(Color.blue);
       g.drawString(s3,10,50);
       g.setColor(Color.red);
       g.drawString(s4,10,65);
       g.setColor(Color.green);
       g.drawString(s5,10,80);
       setBackground(Color.white);
       tk=Toolkit.getDefaultToolkit();
       img=tk.getImage("checks.gif");
       img1=tk.getImage("Mappa_arena.gif");
       tracker=new MediaTracker(this);
       tracker.addImage(img,0);
       tracker.addImage(img1,1);
       try {
    	tracker.waitForAll();
       }
       catch (InterruptedException e) {
        System.out.println("Errore, impossibile caricare le immagini");
        JOptionPane.showMessageDialog (null, "Impossibile caricare le immagini", "Errore", JOptionPane.ERROR_MESSAGE);
       }
       g.drawImage(img,323,0,this);
       g.drawImage(img1,0,100,this);	
    
       addMouseListener(new MouseAdapter() {
        	public void mousePressed(MouseEvent e) {}		
        				
            public void mouseClicked(MouseEvent e) { 
    	     int x=e.getX();
         	     int y=e.getY(); //
    	     if (trova(x,y)>=1 && (e.getClickCount() >= 2) ) {
    		ordina = new OrdinaPosti();
    		ordina.show(); 
    	     } 
            }
       });
       addMouseMotionListener(this);
      }
    
      public void mouseDragged(MouseEvent e){ }
      public void mouseMoved(MouseEvent e) {
       int x = e.getX();
       int y = e.getY();
       if (trova(x, y) >= 0)
        setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        else
        setCursor(Cursor.getDefaultCursor());
       }				
     }
    in pratica ho aggiunto il mouselistener al pannello
    My SO:WinXP pro/Linux Debian/Gentoo 2006.0

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova a usare mouseReleased al posto di mouseclicked

  7. #7
    nulla, ho provato anche a togliere getmouseclicked() per fargli riconoscere un solo click, ma niente é come se riconoscesse piú click consecutivi che io non faccio!
    Non penso che sia la classe trova xché verifica solo le coordinate x e y che gli passo:
    codice:
    protected int trova(int Posx, int Posy) {
     	if (Posx>=10 && Posx<=40 && Posy>=360 && Posy<=370){
       	 titolo = "Stai per prenotare un posto nel settore 1 Gradinata";
       	 settore = "1G";
       	 return 1;
    	}
    else return -1;
    }
    bo? non so + dove andare a parare....
    My SO:WinXP pro/Linux Debian/Gentoo 2006.0

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    addMouseListener(new MouseAdapter() {
    public void mouseReleased(MouseEvent e) {
    int x=e.getX();
    int y=e.getY(); //
    if (trova(x,y)>=1 && e.getClickCount() >= 2 ) {
    ordina = new OrdinaPosti();
    ordina.show();
    }
    }
    });

  9. #9
    Sono riuscito a risolvere questo bug che mi affligeva facendo cosí:
    codice:
    class pannello1 extends JPanel implements MouseMotionListener {
       public void paintComponent(Graphics g){
       // componenti usati
       .
       .
       .
       }
       {
       addMouseListener(new MouseAdapter() {
        	public void mousePressed(MouseEvent e) {}		
        				
            public void mouseClicked(MouseEvent e) { 
    	     int x=e.getX();
         	     int y=e.getY(); //
    	     if (trova(x,y)>=1 && (e.getClickCount() >= 2) ) {
    		ordina = new OrdinaPosti();
    		ordina.show(); 
    	     } 
            }
       });
       addMouseMotionListener(this);
      }
    in pratica ho inserito una graffa prima di addMouseListener cosa che prima non avevo fatto
    perché ora mi viene visualizzato solo una finestra di dialogo e non 3 come prima? il motivo ancora non l'ho capito ma funge!!!
    My SO:WinXP pro/Linux Debian/Gentoo 2006.0

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    probabilmente perchè lo agigungevi dentro il metodo paintComponent

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.