中易网

关于java 鼠标移动改变颜色的问题

答案:1  悬赏:60  
解决时间 2021-04-28 04:47
  • 提问者网友:雨之落き
  • 2021-04-27 22:19
题目:

设计并实现一个程序,其背景色会依据鼠标位置而变化:当鼠标位于左半窗口时背景色为红色;当鼠标位于右半窗口时背景色为兰色。设窗口初始的背景色为绿色。

代码:

 import java.awt.*;
import java.awt.event.*;
public class ClickCanvasTest extends Frame
{  private class WindowCloser extends WindowAdapter
   {  public void windowClosing(WindowEvent we)
      {  System.exit(0); }
   }
   public ClickCanvasTest()
   { super("移动鼠标颜色变化");
      add (new ClickCanvas());
      addWindowListener(new WindowCloser());
      addMouseMotionListener(this);
      pack(); setVisible(true);
   }
   public static void main(String args[])
   {  new ClickCanvasTest(); }
}
class ClickCanvas extends Canvas
{  private class MouseMotion extends MouseAdapter
   {  public void MouseMotion(MouseEvent event)
      {
         Graphics page = getGraphics();
         if(getX()>=250 && getX()<=500)
         page.getred();
         if(getx()<=250 && getX()>=0)
         page.getblue();
      }
   }
}
    public ClickCanvas()
   {  setBackground (Color.green);
      addMouseListener (new MouseClicked());
      setSize (500, 300);
   }

最佳答案
  • 二级知识专家网友:夢想黑洞
  • 2021-04-27 23:40

我写的,可以看下.
import java.awt.Color;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;


import javax.swing.JFrame;


public class ClickCanvasTest extends JFrame {
 public ClickCanvasTest() {
  initGUI();
 }


 private void initGUI() {
  setSize(500, 400);
  getContentPane().setBackground(Color.GREEN);
  try {
   this.addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseMoved(MouseEvent evt) {
    Point p = evt.getPoint();    
    if (p.x < getContentPane().getWidth() / 2) {
    getContentPane().setBackground(Color.RED);
    } else {
    getContentPane().setBackground(Color.BLUE);
    }
    repaint();
    }
   });   
  } catch (Exception e) {
   e.printStackTrace();
  }
 }


 public static void main(String arg[]) {
  new ClickCanvasTest().setVisible(true);


 }
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息