Chcę, aby mój kod podświetlił kwadrat, na którym klikne (działa). Nie wiem, jak to zrobić, że po kliknięciu na inny kwadrat poprzedni zgasł i zapalił się nowy. Jak poprawić metode mouseClicked?
public class App
{
public static void main(String[] args)
{
new App();
}
App()
{
JFrame jFrame = new JFrame("Mouse Hover Demo");
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jFrame.setLayout(new GridLayout(5,5));
for(int i=0;i<25;i++)
{
jFrame.add(new CustomPanel(i));
}
jFrame.pack();
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
}
class CustomPanel extends JPanel implements MouseListener
{
/**
*
*/
boolean isHighlighted;
int postion;
int tab[];
private static final long serialVersionUID = 1L;
Border blackBorder = BorderFactory.createLineBorder(Color.BLACK);
CustomPanel(int postion)
{
this.postion = postion;
addMouseListener(this);
setBorder(blackBorder);
setFocusable(true);
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(50, 50);
}
@Override public void mouseClicked(MouseEvent e)
{
System.out.println(this.postion);
setBackground(Color.black);
}
@Override public void mousePressed(MouseEvent e){}
@Override public void mouseReleased(MouseEvent e){}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
}