当前位置:  技术问答>java相关

这个最简单的绘图程序错在哪里?

    来源: 互联网  发布时间:2015-09-18

    本文导语:  我要在窗口的某个指定区域画一个矩形,水平位置由静态变量count决定。 当我关掉此窗口时,要退出程序。 我的代码如下: import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.event.MouseList...

我要在窗口的某个指定区域画一个矩形,水平位置由静态变量count决定。
当我关掉此窗口时,要退出程序。
我的代码如下:

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;


public class TestNetPaint
{
public static int count=100;
public static void main(String[] args)throws Exception
{
JFrame myframe=new MyFrame();
myframe.show();
}
}
class MyFrame extends JFrame
{
public MyFrame()
{
addWindowListener
(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
setSize(600,400);
Container contentPane=getContentPane();
contentPane.add(new MyPanel());
}
}

class MyPanel extends JPanel 
{  
TestNetPaint netpaint=new TestNetPaint();
public MyPanel()
{
}

public void paint(Graphics g)
{ g.drawRect(netpaint.count,0,25,25);

                             System.out.println("MyPanel is running");
}
}

编译,运行。好象没事,在左上角画出一个矩形。
可是,当我拖动(多拖几下,拖快点)窗口,,MyFrame.paint 就会执行,然后会乱画出许多矩形。
问:如何解决?

|
加上一句试试.
public void paint(Graphics g)
{
                         super.paint(g);//加上这句试试
                         g.drawRect(netpaint.count,0,25,25);

                             System.out.println("MyPanel is running");
}

|
作用是:调用父类的paint(g)方法。原先因为你覆盖了父类的paint(g)方法,当你拖动时MyPanel回调用paint(g)方法,如果不加super.paint(g),则只会多次调用g.drawRect(netpaint.count,0,25,25);所以会出现多个矩形。加上super.paint(g),会先调用父类方法的paint(g),它会重新绘制一个JPanel,原来的矩形就没有了,再调用g.drawRect(netpaint.count,0,25,25),画一个新的举行。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在QLable控件上如何绘图???我想实现在label控件上绘图,大家帮忙~~~
  • 绘图软件包 Gnuplot
  • 位图图像绘图软件 MacPaint
  • 绘图引擎 RRDtool
  • Java绘图Applet Grafito
  • 绘图库 DISLIN
  • php绘图中显示不出图片的原因及解决
  • JavaScript绘图库 DrJs
  • jQuery绘图插件 wPaint
  • 矢量绘图软件 Xara LX
  • 开源绘图软件 mtPaint
  • 向量图形绘图库 Cairo
  • 绘图软件 MyPaint
  • 在线绘图系统 Painter
  • JavaScript绘图工具包 Plotkit
  • jQuery绘图插件 jqPlot
  • jQuery 绘图插件 jCanvas
  • QT 绘图方法的比较
  • Java 绘图框架 JGraphEd
  • 在浏览器上绘图 PaintWeb


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3