簡體   English   中英

背景顏色更改Java

[英]Background color change Java

我試圖編寫有關mouselistener的程序。 我想制作一個程序,如果鼠標光標進入或退出框架,框架的背景顏色就會改變。

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);   
   }
}

編譯沒有問題,並且如果我運行該程序,它會在I / O消息上顯示ENTER,EXIT。 但是,問題是顏色沒有改變。 根本就是白框。

這里的問題是,顯示JFrame內容的區域實際上是“內容窗格”,而不是JFrame本身的內容。

你將不得不使用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM