Я попытался запрограммировать о mouselistener. Я хотел сделать программу, чтобы, если курсор мыши входит в рамку или выходит из нее, меняется цвет фона фрейма.Изменение цвета фона Java
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.Color;
import javax.swing.JFrame;
import java.awt.event.ActionListener;
public class EnterExitListener extends JFrame
{
public static void main(String [] args)
{
JFrame frame=new JFrame();
final int FRAME_WIDTH=500;
final int FRAME_HEIGHT=600;
frame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class MouseEnterExitListener implements MouseListener
{
public void mouseEntered(MouseEvent event)
{
System.out.println("ENTER");
frame.setBackground(Color.BLUE);
}
public void mouseExited(MouseEvent event)
{
System.out.println("EXIT");
frame.setBackground(Color.RED);
}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mousePressed(MouseEvent event) {}
}
MouseListener listener = new MouseEnterExitListener();
frame.addMouseListener(listener);
}
}
компилирование не имеет никаких проблем, и если я запустить программу, она показывает ENTER, EXIT на сообщение I/O. Однако проблема заключается в том, что цвет не меняется. Это всего лишь белая рамка.
Почему вы расширяете JFrame? Ваш код создает JFrame, поэтому нет необходимости расширять JFrame. – camickr