Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java] intercettare la pressione di un JButton

    sono alle prime armi con il java.
    devo fare un programma che alla pressione di un tasto,metta la scritta "X" come testo del tasto stesso.
    uso questo codice:

    codice:
    import javax.swing.*;
    
    import java.awt.*;
    import java.awt.event.*;
    
    public class TrisDemo extends JFrame implements ActionListener{
    	
    	 	public static final int WIDTH = 400;
    	    public static final int HEIGHT = 400;
    
    			    
    	    public static void main (String args[])
    	    {
    	    	TrisDemo prova=new TrisDemo();
    	    	prova.setVisible(true);
    	    	
    	    }
    	    
    	    public TrisDemo( )
    	    {
    	    	     	
    	    	 setSize(WIDTH, HEIGHT);
    	    	 setLocation(500,300);
    	    	 
    	    	 addWindowListener(new WindowDestroyer( ));
    	         Container contentPane = getContentPane( );
    	         contentPane.setLayout(new GridLayout(3,3));
    	         
    	         JButton b1=new JButton("");
    	         contentPane.add(b1);
    	         b1.addActionListener(this);
    	         
    	         
    	         JButton b2=new JButton("");
    	         contentPane.add(b2);
    	         b2.addActionListener(this);
    	         
    	         
    	         JButton b3=new JButton("");
    	         contentPane.add(b3);
    	         b3.addActionListener(this);
    	         
    	         
    	         JButton b4=new JButton("");
    	         contentPane.add(b4);
    	         b4.addActionListener(this);
    	         
    	         
    	         JButton b5=new JButton("");
    	         contentPane.add(b5);
    	         b5.addActionListener(this);
    	         
    	         
    	         JButton b6=new JButton("");
    	         contentPane.add(b6);
    	         b6.addActionListener(this);
    	         
    	         JButton b7=new JButton("");
    	         contentPane.add(b7);
    	         b7.addActionListener(this);
    	         
    	         
    	         JButton b8=new JButton("");
    	         contentPane.add(b8);
    	         b8.addActionListener(this);
    	         
    	         
    	         JButton b9=new JButton("");
    	         contentPane.add(b9);
    	         b9.addActionListener(this);
    	         
    	         
    	    	
    	    }
    	    public void actionPerformed(ActionEvent e)
    	    {	
    	    	
    	    	
    	        if (e.getActionCommand( ).equals(""))
    	        {	    
    	        	//codice
    	        	
    	        	
    	        }
    	    }
    
    
    }
    Se i pulsanti all'inizio sono tutti vuoti,come posso risalire al pulsante premuto?
    inoltre una volta fatto questo come posso assegnare la scritta "X" al pulsante premuto,dato che è stato dichiarato all'interno di un altro metodo e quindi è irraggiungibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    invece di usare getActionCommand puoi usare getSource che ritorna un Object, casti a JButton e fai un setText
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ossia
    codice:
    public void actionPerformed(ActionEvent e)
    	    {	
    	    	
    	    	
    	        if (e.getActionCommand( ).equals(""))
    	        {	    
    	        	((JButton)e.getSource()).setText("X");
    	        	
    	        	
    	        }
    	    }
    A te il resto della logica (per esempio, quale simbolo -se X o O- aggiungere), e la disabilitazione dei JButton già premuti...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    ok grazie 1000!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.