tenho uma janela com 5 botões, na frente de cada botão existe um label, na frente, não dentro do botão!
mas eu só posso exibir o label na frente do botão quando ele ganhar o foco, o usuário não precisa clicar, somente passar o mouse em cima do botão para o label se tornar visível, se ele tirar o mouse de cima, o label some.
tentei da seguinte maneira, mas não compila:
JLabel lblClientes = new JLabel("Clientes");
lblClientes.setFont(new Font("Comic Sans MS", Font.ITALIC, 22));
lblClientes.setBounds(95, 34, 94, 32);
frame.getContentPane().add(lblClientes);
lblClientes.setVisible(false);
JButton buttonClientes = new JButton("");
buttonClientes.addFocusListener(new FocusListener(){
public void focusGained(FocusEvent arg0) {
//ação desejada quando ganha o foco
lblClientes.setVisible(true); //ERRO AQUI
}
public void focusLost(FocusEvent arg0){
//ação desejada quando perde o foco
lblClientes.setVisible(false); //ERRO AQUI
}
});
xception in thread "main" java.lang.Error: Unresolved compilation problems:
Cannot refer to a non-final variable lblClientes inside an inner class defined in a different method
Cannot refer to a non-final variable lblClientes inside an inner class defined in a different method
at Inicio.initialize(Inicio.java:83)
at Inicio.<init>(Inicio.java:45)
at Inicio.main(Inicio.java:34)
Olha só eu nunca fiz isso,estou tão perdida como vc,o erro não é possível se referir a uma variável lblClientes dentro de uma classe interna definida em um método diferente.
Não sei se é isso mas um esta focusGained e o outro focusLos.
Desculpe não entendi,vc quer que a mesma label fica true ou false,então deveria fazer uma condição para isso,dentro do mesmo evento…