[RESOLVIDO] Como mudar a cor de 1 JPanel com mouseEntered

2 respostas
painhoo2

Boa tarde,
gostaria de saber se tem como eu mudar a cor de 1 jpanel ao passar o mouse sobre ele, é que na verdade eu tenho vontade de fazer como se fosse 1 JAVASCRIPT(onmouse) algo desse tipo…
Outra pergunta seria, como se faz esses menus que quando passa o mouse sobre ele, ele recebe destaque?

Info:
Em Aplicação desktop.
JAVA SE.
desculpa se não consegui mim expressar bem.
Grato.

2 Respostas

E

Rode o exemplo abaixo.

package guj;

import java.awt.BorderLayout;
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;

public class ExemploMudarCorJPanel extends JFrame {
    private JPanel pnlNorte;
    private JLabel lblJpanelNorte;
    private JPanel pnlLeste;
    private JLabel lblJpanelLeste;
    private JPanel pnlOeste;
    private JLabel lblJpanelOeste;
    private JPanel pnlSul;
    private JLabel lblJpanelSul;
    private JPanel pnlCentral;
    private JLabel lblJPanelCentral;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExemploMudarCorJPanel frame = new ExemploMudarCorJPanel();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ExemploMudarCorJPanel() {
        setBounds(100, 100, 450, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().add(getPnlNorte(), BorderLayout.NORTH);
        getContentPane().add(getPnlLeste(), BorderLayout.WEST);
        getContentPane().add(getPnlOeste(), BorderLayout.EAST);
        getContentPane().add(getPnlSul(), BorderLayout.SOUTH);
        getContentPane().add(getPnlCentral(), BorderLayout.CENTER);

    }

    private JPanel getPnlNorte() {
        if (pnlNorte == null) {
            pnlNorte = new JPanel();
            pnlNorte.add(getLblJpanelNorte());
            pnlNorte.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlNorte().getBackground();
                    getPnlNorte().setBackground(Color.YELLOW);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlNorte().setBackground(clrPanel);
                }
            });

        }
        return pnlNorte;
    }

    private JLabel getLblJpanelNorte() {
        if (lblJpanelNorte == null) {
            lblJpanelNorte = new JLabel("JPanel Norte");
        }
        return lblJpanelNorte;
    }

    private JPanel getPnlLeste() {
        if (pnlLeste == null) {
            pnlLeste = new JPanel();
            pnlLeste.add(getLblJpanelLeste());
            pnlLeste.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlLeste().getBackground();
                    getPnlLeste().setBackground(Color.BLUE);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlLeste().setBackground(clrPanel);
                }
            });
        }
        return pnlLeste;
    }

    private JLabel getLblJpanelLeste() {
        if (lblJpanelLeste == null) {
            lblJpanelLeste = new JLabel("JPanel Leste");
        }
        return lblJpanelLeste;
    }

    private JPanel getPnlOeste() {
        if (pnlOeste == null) {
            pnlOeste = new JPanel();
            pnlOeste.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlOeste().getBackground();
                    getPnlOeste().setBackground(Color.GREEN);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlOeste().setBackground(clrPanel);
                }
            });
            pnlOeste.add(getLblJpanelOeste());
        }
        return pnlOeste;
    }

    private JLabel getLblJpanelOeste() {
        if (lblJpanelOeste == null) {
            lblJpanelOeste = new JLabel("JPanel Oeste");
        }
        return lblJpanelOeste;
    }

    private JPanel getPnlSul() {
        if (pnlSul == null) {
            pnlSul = new JPanel();
            pnlSul.add(getLblJpanelSul());

            pnlSul.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlSul().getBackground();
                    getPnlSul().setBackground(Color.BLUE);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlSul().setBackground(clrPanel);
                }
            });
        }
        return pnlSul;
    }

    private JLabel getLblJpanelSul() {
        if (lblJpanelSul == null) {
            lblJpanelSul = new JLabel("JPanel Sul");
        }
        return lblJpanelSul;
    }

    private JPanel getPnlCentral() {
        if (pnlCentral == null) {
            pnlCentral = new JPanel();
            pnlCentral.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlCentral().getBackground();
                    getPnlCentral().setBackground(Color.RED);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlCentral().setBackground(clrPanel);
                }
            });
            pnlCentral.add(getLblJPanelCentral());
        }
        return pnlCentral;
    }

    private JLabel getLblJPanelCentral() {
        if (lblJPanelCentral == null) {
            lblJPanelCentral = new JLabel("JPanel Central");
        }
        return lblJPanelCentral;
    }
}
painhoo2
entanglement:
Rode o exemplo abaixo.
package guj;

import java.awt.BorderLayout;
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;

public class ExemploMudarCorJPanel extends JFrame {
    private JPanel pnlNorte;
    private JLabel lblJpanelNorte;
    private JPanel pnlLeste;
    private JLabel lblJpanelLeste;
    private JPanel pnlOeste;
    private JLabel lblJpanelOeste;
    private JPanel pnlSul;
    private JLabel lblJpanelSul;
    private JPanel pnlCentral;
    private JLabel lblJPanelCentral;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExemploMudarCorJPanel frame = new ExemploMudarCorJPanel();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ExemploMudarCorJPanel() {
        setBounds(100, 100, 450, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().add(getPnlNorte(), BorderLayout.NORTH);
        getContentPane().add(getPnlLeste(), BorderLayout.WEST);
        getContentPane().add(getPnlOeste(), BorderLayout.EAST);
        getContentPane().add(getPnlSul(), BorderLayout.SOUTH);
        getContentPane().add(getPnlCentral(), BorderLayout.CENTER);

    }

    private JPanel getPnlNorte() {
        if (pnlNorte == null) {
            pnlNorte = new JPanel();
            pnlNorte.add(getLblJpanelNorte());
            pnlNorte.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlNorte().getBackground();
                    getPnlNorte().setBackground(Color.YELLOW);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlNorte().setBackground(clrPanel);
                }
            });

        }
        return pnlNorte;
    }

    private JLabel getLblJpanelNorte() {
        if (lblJpanelNorte == null) {
            lblJpanelNorte = new JLabel("JPanel Norte");
        }
        return lblJpanelNorte;
    }

    private JPanel getPnlLeste() {
        if (pnlLeste == null) {
            pnlLeste = new JPanel();
            pnlLeste.add(getLblJpanelLeste());
            pnlLeste.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlLeste().getBackground();
                    getPnlLeste().setBackground(Color.BLUE);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlLeste().setBackground(clrPanel);
                }
            });
        }
        return pnlLeste;
    }

    private JLabel getLblJpanelLeste() {
        if (lblJpanelLeste == null) {
            lblJpanelLeste = new JLabel("JPanel Leste");
        }
        return lblJpanelLeste;
    }

    private JPanel getPnlOeste() {
        if (pnlOeste == null) {
            pnlOeste = new JPanel();
            pnlOeste.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlOeste().getBackground();
                    getPnlOeste().setBackground(Color.GREEN);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlOeste().setBackground(clrPanel);
                }
            });
            pnlOeste.add(getLblJpanelOeste());
        }
        return pnlOeste;
    }

    private JLabel getLblJpanelOeste() {
        if (lblJpanelOeste == null) {
            lblJpanelOeste = new JLabel("JPanel Oeste");
        }
        return lblJpanelOeste;
    }

    private JPanel getPnlSul() {
        if (pnlSul == null) {
            pnlSul = new JPanel();
            pnlSul.add(getLblJpanelSul());

            pnlSul.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlSul().getBackground();
                    getPnlSul().setBackground(Color.BLUE);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlSul().setBackground(clrPanel);
                }
            });
        }
        return pnlSul;
    }

    private JLabel getLblJpanelSul() {
        if (lblJpanelSul == null) {
            lblJpanelSul = new JLabel("JPanel Sul");
        }
        return lblJpanelSul;
    }

    private JPanel getPnlCentral() {
        if (pnlCentral == null) {
            pnlCentral = new JPanel();
            pnlCentral.addMouseListener(new MouseAdapter() {
                private Color clrPanel = null;

                @Override
                public void mouseEntered(MouseEvent e) {
                    clrPanel = getPnlCentral().getBackground();
                    getPnlCentral().setBackground(Color.RED);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    if (clrPanel != null)
                        getPnlCentral().setBackground(clrPanel);
                }
            });
            pnlCentral.add(getLblJPanelCentral());
        }
        return pnlCentral;
    }

    private JLabel getLblJPanelCentral() {
        if (lblJPanelCentral == null) {
            lblJPanelCentral = new JLabel("JPanel Central");
        }
        return lblJPanelCentral;
    }
}

Bom amigo Rodei a aplicação acima, isso mesmo... que eu estava precisando muito obrigado.
Grato ;D

Criado 16 de maio de 2013
Ultima resposta 17 de mai. de 2013
Respostas 2
Participantes 2