Olá, eu criei uma biblioteca, e nela coloquei uma classe com um método com o objetivo de aplicar determinadas propriedades em todo component do tipo jbutton que fosse adicionado ao container do parâmetro, tudo funciona corretamente exceto o mouse listener, alguém pode me explicar porque o mouse listener não funciona?
Meu código:
`
package LookAndFeel;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JButton;
public class FormataComponents {
public void formatar(Container c){
ArrayList<Component> list = new ArrayList<Component>();
for(int i = 0; i<=c.getComponentCount()-1; ++i){
Component component = c.getComponent(i);
if(component instanceof JButton){
list.add(component);
component.setBackground(Color.RED);
((JButton) component).setBorderPainted(false);
component.setFocusable(false);
component.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
component.setSize(dn);
c.validate();
}
public void mousePressed(MouseEvent arg0) {
component.setSize(component.getWidth()-10,component.getHeight()-10);
c.validate();
}
public void mouseExited(MouseEvent arg0) {
component.setSize(dn);
c.validate();
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(component.getWidth(),component.getHeight());
component.setSize(component.getWidth()+5,component.getHeight()+5);
c.validate();
}
public void mouseClicked(MouseEvent arg0) {
}
});
c.validate();
}
}
new Thread(new Runnable(){
public void run(){
while(true){
c.validate();
for(int i = 0; i<=c.getComponentCount()-1; ++i){
Component atual = c.getComponent(i);
if(!list.contains(atual)){
list.add(atual);
if(atual instanceof JButton){
atual.setBackground(Color.RED);
((JButton) atual).setBorderPainted(false);
atual.setFocusable(false);
atual.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
atual.setSize(dn);
c.validate();
}
public void mousePressed(MouseEvent arg0) {
atual.setSize(atual.getWidth()-10,atual.getHeight()-10);
c.validate();
}
public void mouseExited(MouseEvent arg0) {
atual.setSize(dn);
c.validate();
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(atual.getWidth(),atual.getHeight());
atual.setSize(atual.getWidth()+5,atual.getHeight()+5);
c.validate();
}
public void mouseClicked(MouseEvent arg0) {
}
});
c.validate();
}
}
}
}
}
}).start();
}
}
`
.