Visualizzazione dei risultati da 1 a 10 su 10

Visualizzazione discussione

  1. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Ok ho provato a costruire delle classi di esempio per gestire il threading in Swing, in questo codice premendo un bottone, scambio le icone di due JLabel e ad operazione effettutata aspetto due secondi.Posto le classi create:
    codice:
    public class Finestra 
    {
    	static JLabel icona,altraIcona;
    	public static void main(String args[])
    	{
    		JFrame frame = new JFrame("Prova Thread");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		JButton button=new JButton("Inverti");
    		icona=new JLabel(new ImageIcon("../2c.png"));
    		altraIcona=new JLabel(new ImageIcon("../img.png"));
    		button.addMouseListener(new Ascoltatore());
    		Container c=frame.getContentPane();
    		JPanel p=new JPanel(); 
    		c.add(p);
    		p.add(icona);
    		p.add(button);
    		p.add(altraIcona);
    		frame.setSize(500,500);
    		frame.setVisible(true);
    	}
    }
    public class Ascoltatore implements MouseListener
    {
    	public void mouseClicked(MouseEvent e)
    	{
    		System.out.print("\nBottone cliccato");
    		new Thread(new Esecutore()).start();
    	}
    	public void mouseEntered(MouseEvent e){}
    	public void mouseExited(MouseEvent e){}
    	public void mouseReleased(MouseEvent e){}
    	public void mousePressed(MouseEvent e){}
    }
    public class Esecutore implements Runnable
    {
    	public void run()
    	{
    		try 
    		{
    			EventQueue.invokeAndWait(new Inverti());			
    			Thread.sleep(2000);
    			System.out.print("\nOk fatto");	
    		} 
    		catch (InterruptedException e)
    		{
    			e.printStackTrace();
    		}
    		catch(InvocationTargetException e)
    		{
    			e.printStackTrace();
    		}
    	}
    }
    public class Inverti implements Runnable
    {
    	public void run()
    	{
    		Icon tmp=Finestra.icona.getIcon();		
    		Finestra.icona.setIcon(Finestra.altraIcona.getIcon());
    		Finestra.altraIcona.setIcon(tmp);
    	}
    }
    Il risultato è quello che mi aspetto, volevo sapere se sto facendo il tutto in modo corretto
    Ultima modifica di Ansharja; 02-06-2015 a 09:56

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.