hlucasfranca 1 de abr. de 2016 1 like
@Minato25 , verifique se os métodos estão sendo chamados pelo listener.
Segue um código de exemplo:
import java.awt.Color ;
import java.awt.EventQueue ;
import java.awt.event.MouseAdapter ;
import java.awt.event.MouseEvent ;
import javax.swing.JFrame ;
import javax.swing.JLabel ;
import javax.swing.JPanel ;
import javax.swing.border.EmptyBorder ;
public class Frame extends JFrame {
private JPanel contentPane ;
public static void main ( String [] args ) {
EventQueue . invokeLater ( new Runnable () {
public void run () {
try {
Frame frame = new Frame ();
frame . setVisible ( true );
} catch ( Exception e ) {
e . printStackTrace ();
}
}
});
}
public Frame () {
setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
setBounds ( 100 , 100 , 450 , 300 );
contentPane = new JPanel ();
contentPane . setBorder ( new EmptyBorder ( 5 , 5 , 5 , 5 ));
setContentPane ( contentPane );
JLabel lblNewLabel = new JLabel ( "Teste" );
lblNewLabel . setBounds ( 124 , 90 , 205 , 29 );
lblNewLabel . addMouseListener ( new MouseAdapter () {
@Override
public void mouseEntered ( MouseEvent arg0 ) {
lblNewLabel . setForeground ( Color . RED );
}
@Override
public void mouseExited ( MouseEvent e ) {
lblNewLabel . setForeground ( Color . BLACK );
}
});
contentPane . setLayout ( null );
contentPane . add ( lblNewLabel );
}
}
Abcs!
Minato25 1 de abr. de 2016
Oi, é porque em vez de uma String eu coloquei uma imagem no label. Na verdade acho que não me expressei bem, eu quero que quando o usuário passe o mause em cima da imagem o label tenha as suas “dimensões” realçadas, como acontece com os ícones do NetBeans onde se percebe as dimensões do label (fica um pouco mais escuro) com a imagem.
Tem como fazer isso?
Att,
Minato.
hlucasfranca 1 de abr. de 2016 1 like
Você pode usar um JButton no lugar do JLabel:
import java.awt.EventQueue ;
import java.awt.event.MouseAdapter ;
import java.awt.event.MouseEvent ;
import javax.swing.JButton ;
import javax.swing.JFrame ;
import javax.swing.JPanel ;
import javax.swing.border.EmptyBorder ;
public class Frame extends JFrame {
private JPanel contentPane ;
public static void main ( String [] args ) {
EventQueue . invokeLater ( new Runnable () {
public void run () {
try {
Frame frame = new Frame ();
frame . setVisible ( true );
} catch ( Exception e ) {
e . printStackTrace ();
}
}
});
}
public Frame () {
setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
setBounds ( 100 , 100 , 450 , 300 );
contentPane = new JPanel ();
contentPane . setBorder ( new EmptyBorder ( 5 , 5 , 5 , 5 ));
setContentPane ( contentPane );
contentPane . setLayout ( null );
JButton btnNewButton = new JButton ( "New button" );
desfocarBotao ( btnNewButton );
btnNewButton . addMouseListener ( new MouseAdapter () {
@Override
public void mouseEntered ( MouseEvent arg0 ) {
focarBotao ( btnNewButton );
}
@Override
public void mouseExited ( MouseEvent e ) {
desfocarBotao ( btnNewButton );
}
});
btnNewButton . setBounds ( 27 , 134 , 89 , 23 );
contentPane . add ( btnNewButton );
}
private void focarBotao ( JButton btnNewButton ) {
btnNewButton . setBorderPainted ( true );
btnNewButton . setFocusPainted ( true );
btnNewButton . setContentAreaFilled ( true );
}
private void desfocarBotao ( JButton btnNewButton ) {
btnNewButton . setBorderPainted ( false );
btnNewButton . setFocusPainted ( false );
btnNewButton . setContentAreaFilled ( false );
}
}
Minato25 2 de abr. de 2016
É porque tem que ser em um label com imagem mesmo.
Não tem como fazer isso com um label ao invés de um botão?
Att,
Minato
Paulo_Carvalho1 2 de abr. de 2016
No caso de imagem, a soluçao que vejo e alterar a imagem em si.