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

    MouseListener su una JLabel

    Ciao ragazzi. Ho due label a cui ho aggiunto una immagine con il comando setIcon. Vorrei che si potesse associare ad ognuna di esse un MouseListener in modo che, una volta cliccata l'immagine, succede qualcosa..Ho pensato a questo codice:

    codice:
    public class J extends JFrame implements MouseListener {
    
    	private JPanel contentPane;
    	private JLabel lblNewLabel_1;
    	private JLabel lblNewLabel;
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					J frame = new J();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public J() {
    		setUndecorated(true);
    		setBackground(Color.BLACK);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		contentPane = new JPanel();
    		contentPane.setBackground(Color.BLACK);
    		setContentPane(contentPane);
    		getContentPane().setLayout(null);
    		
    		lblNewLabel = new JLabel("New label");
    		lblNewLabel.setBounds(new Rectangle(126, 208, 350, 350));
    		ImageIcon im = new ImageIcon(getClass().getResource("/Copia di album2/1.jpg"));
    		lblNewLabel.setIcon(im);
    		contentPane.add(lblNewLabel);
    		lblNewLabel.addMouseListener(this);
    		
    		
    		lblNewLabel_1 = new JLabel("New label");
    		lblNewLabel_1.setBounds(new Rectangle(802, 208, 350, 350));
    		
    		lblNewLabel_1.setIcon(im);
    		contentPane.add(lblNewLabel_1);
    		lblNewLabel_1.addMouseListener(this);
            
           
            
    		
    		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            setBounds(0, 0, screenSize.width, screenSize.height);
            
    	}
    
    	@Override
    	public void mouseClicked(MouseEvent e) {
    		// TODO Auto-generated method stub
    		if (e.getSource() == lblNewLabel_1) {
    			  //il bordo dell'immagne diventa verde con il click
    			} else if (e.getSource() == lblNewLabel) {
    			  //il bordo dell'immagne diventa verde con il click
    			}
    	}
    
    	@Override
    	public void mouseEntered(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void mouseExited(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void mousePressed(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void mouseReleased(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	
    }
    Ho un schermo nero in full screen mode e due immagini e dovrei cliccare su una di queste.
    E' giusto il codice?Vorrei che il bordo dell'immagine diventasse verde dopo il click. Come fare?

  2. #2
    ok,ho risolto in questo modo..
    codice:
    Border greenline = BorderFactory.createLineBorder(Color.green,3);
    public void mouseClicked(MouseEvent e) {
    		
    		if(e.getSource() == lblNewLabel) {
    			//scelta immagine 2
    			
    			  lblNewLabel.setBorder(greenline);
    			
    		} else if (e.getSource()== lblNewLabel_1 ) {
    			//scelta immagine 2
    			
    			  lblNewLabel_1.setBorder(greenline);
    			
    		}
    		
    	}

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.