2015-09-10 7 views
0

Я попытался запрограммировать о 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. Однако проблема заключается в том, что цвет не меняется. Это всего лишь белая рамка.

+0

Почему вы расширяете JFrame? Ваш код создает JFrame, поэтому нет необходимости расширять JFrame. – camickr

ответ

2

Проблема в том, что область, где отображается содержимое JFrame, фактически является «областью содержимого», а не содержимым самого JFrame.

вам придется использовать

frame.getContentPane() setBackground (Color.BLUE).

+0

Если вы считаете, что он разрешен, вы можете отметить, что он ответил. –

+0

не то, что зеленая галочка ответила mark ?? извините, но пока я не знаю об этом сайте. – Konorika

Смежные вопросы