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

关于repaint()的一个问题???

    来源: 互联网  发布时间:2015-04-19

    本文导语:  我在imagepanel中用drawstring()方法显示一个字符串,但是当我鼠标移动后 字符串就消失了?是否应该调用repaint()?repaint()有什么用?谢谢!!! | drawstring() 应写在 paint()中 | 应...

我在imagepanel中用drawstring()方法显示一个字符串,但是当我鼠标移动后
字符串就消失了?是否应该调用repaint()?repaint()有什么用?谢谢!!!

|
drawstring() 应写在 paint()中

|
应该调用repait():
 public void init(){
   repaint();
}
 

|
在paint方法中使用drawString然后不论何时更新需显示的内容都要调用repaint
不过你的情况是不用调用repaint的

|
如果是继承awt中的Panel,将drawString()写在paint中,重载update方法:
public void update(Graphics g) {
  paint(g);
}
可防止闪烁。如果是JPanel就不必。

因为Panel中update方法是先擦后画,有闪烁。而JPanel中用双缓冲画。

|
// Properties

 

              /**

               * Paints this component using the given graphics context.

     * This is a standard Java AWT method which typically gets called

     * by the AWT to handle painting this component. It paints this component

     * using the given graphics context. The graphics context clipping region

     * is set to the bounding rectangle of this component and its [0,0]

     * coordinate is this component's top-left corner.

     *

     * @param g the graphics context used for painting

     * @see java.awt.Component#repaint

     * @see java.awt.Component#update

               */

              public void paint(Graphics g)

              {

                            Dimension dim = size();

                            if (image != null)

                            {

                                          int imageWidth = image.getWidth(this);

                                          int imageHeight = image.getHeight(this);

                                          switch(imageStyle)

                                          {

                                                        default:

                                                        case IMAGE_TILED:

                                                        {

                                                                      //Calculate number of images that should be drawn horizontally

                                                                      int numHImages = dim.width / imageWidth;

 

                                                                      //Don't forget remainders

                                                                      if (dim.width % imageWidth != 0)

                                                                                    numHImages++;

 

                                                                      //Calculate number of images that should be drawn vertically

                                                                      int numVImages = dim.height / imageHeight;

 

                                                                      //Don't forget remainders

                                                                      if (dim.height % imageHeight != 0)

                                                                                    numVImages++;

 

                                                                      int h;

                                                                      int v = 0;

                                                                      for (int vCount = 0;vCount 

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • java命名空间javax.swing.tree类defaulttreecellrenderer的类成员方法: repaint定义及介绍
  • 请教repaint()的机制
  • java命名空间javax.swing类defaultlistcellrenderer的类成员方法: repaint定义及介绍
  • 容器中的repaint()和validate()方法的区别?
  • java命名空间javax.swing.text类defaultcaret的类成员方法: repaint定义及介绍
  • 求Applet中paint,repaint,update的联系和区别。
  • java命名空间javax.swing类jviewport的类成员方法: repaint定义及介绍
  • 在看SCJP中的GUI Thread中repaint()时卡壳了,不太明白,哪位可以给小弟讲讲啊?
  • java命名空间javax.swing类jcomponent的类成员方法: repaint定义及介绍
  • 请问在applet里repaint()有什么功能?
  • java命名空间javax.swing类jwindow的类成员方法: repaint定义及介绍
  • 关于SWING中paint(),paintComponent(),repaint()方法的区别?
  • java命名空间javax.swing类jframe的类成员方法: repaint定义及介绍
  • java/j2ee iis7站长之家
  • java命名空间javax.swing类japplet的类成员方法: repaint定义及介绍
  • ◆◆◆◆◆◆◆j2me中,用repaint()在同一地方重画图象,当我画到二十几遍后,手机模拟器就出错或者程序自动退出。我想是不是由于重画时,以前的图片好保存在模拟器的内存中,当重画到一定数时,内存不够,便出错了。还是其他的原因?请问如何解决?
  • java命名空间javax.swing类jdialog的类成员方法: repaint定义及介绍
  • 为什么执行repaint()后,不能清除原来所画的内容?
  • java命名空间javax.swing.table类defaulttablecellrenderer的类成员方法: repaint定义及介绍
  • 为什么repaint()后没有重载paint()方法呢?小M求助各位GG!非常急!答对一定给分!!!
  • java命名空间java.awt类component的类成员方法: repaint定义及介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3