java_图形绘制(实现背景转换)帮忙修改一下大神们帮帮忙
设计并实现一个程序,其背景色会依据鼠标位置而变化:当鼠标位于左半窗口时背景色为红色;当鼠标位于右半窗口时背景色为兰色。设窗口初始的背景色为绿色。importjava.aw...
设计并实现一个程序,其背景色会依据鼠标位置而变化:当鼠标位于左半窗口时背景色为红色;当鼠标位于右半窗口时背景色为兰色。设窗口初始的背景色为绿色。 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()); pack(); setVisible(true); } public static void main(String args[]) { new ClickCanvasTest(); } } class ClickCanvas extends Canvas { private class MouseClicked extends MouseAdapter { public void mouseClicked(MouseEvent event) { if(getX()<250&&getX()>0)//鼠标在这个范围之类 setBackground (Color.blue);//背景设为red if(getX()>250&&getX()<500)//鼠标在这个范围之类 setBackground (Color.red);//背景设为blue } } public ClickCanvas() { setBackground (Color.green);//原始背景设为green addMouseListener (new MouseClicked()); setSize (500, 500); } }
展开
1个回答
展开全部
这个问题刚刚已经答过了.以下是代码,可以参考一下: 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); } }
麻烦采纳,谢谢!
麻烦采纳,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询